2

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

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

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

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

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

Я использую Office 2010, кстати.

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

3 ответа3

2

Это может произойти, когда 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

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

0

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

Способ сделать это:

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

  2. Выберите Data -> Text To Columns

  3. Нажмите Finish (для этого случая работают значения по умолчанию - они разделены -> Tab -> General (format)). Если вам когда-либо приходилось делать обратное (повторно импортировать числа, но заставлять их обрабатывать текст), вы изменили бы третий вариант на «Текст».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .