Как изменить числовой формат ячейки в таблице, импортированной из базы данных?

Как изменить числовой формат ячейки в таблице, импортированной из базы данных?

У меня есть лист, который выглядит вот так -

    A  |     B      | C
   ----------------------
    2  |  Okay      |  0
    3  |  Not okay  | 0

Ячейка C3имеет зеленый указатель ошибки и сообщает: «Число в этой ячейке отформатировано как текст или ему предшествует апостроф», и, конечно же, оно выровнено по левому краю.

Когда я отображаю формат для обеих ячеек C2и C3, они оба отображаются как «Общий».

Когда я использую VBA для проверки «NumberFormat», оба параметра отображаются как «General».

Кстати, я использую Office 2010.

Я хотел бы исправить это (это происходит с десятками ячеек на нескольких листах), изменив формат с текстового на общий с помощью кода VBA, но как это сделать, если код считает, что соответствующие ячейки уже отформатированы как Общий?

решение1

Это может произойти, когда Excel считает, что число сохранено как текст (даже если он говорит, что это не так, даже если вы изменили формат на число), поскольку оно было плохо закодировано на другом конце.

Очень простое решение для чисел, хранящихся в виде текста, — это добавить дополнительный столбец с формулой, которая преобразует число в число.

=$C2*1

И просто перетащите это вниз, а затем обратитесь к этому. Если вы работаете с живой подключенной таблицей, наличие этого столбца в конце таблицы будет означать, что диапазон формулы будет расширяться вместе с диапазоном данных.


Конечно, с помощью VBA вы можете запустить цикл, который проходит по данным, заменяя каждое значение в столбце результатом этой формулы.

решение2

Вот фрагмент кода VBA, который поможет вам в этом.

Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")

For Each c In r
    On Error Resume Next
    c.Value = CDbl(c.Value)
Next c
End Sub

Обработка ошибок выполняется только в том случае, если в указанном диапазоне находится реальный текст.

решение3

Это часто может происходить при копировании-вставке или импорте данных. Если это целый столбец, лучший способ исправить это — просто повторно импортировать столбец с большим контролем над предположениями Excel относительно того, какой тип данных что-то представляет.

Вот как это сделать:

  1. Выделите столбец с этой проблемой

  2. Выбрать Data->Text To Columns

  3. Нажмите Finish(в этом случае подойдут значения по умолчанию — Разделители-> Tab -> Общие (формат)). Если бы вам когда-нибудь пришлось сделать обратное (повторно импортировать числа, но заставить их обрабатываться как текст), вы бы изменили третий параметр на Текст

Связанный контент