Как изменить формат ячейки на текст с помощью VBA

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

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

В настоящее время я копирую все данные в блокнот, а затем сохраняю его обратно в Excel лист, чтобы удалить весь предыдущий формат. Есть ли способ автоматизировать настройку форматирования ячейки в текст с помощью VBA?

3 ответов


чтобы ответить на ваш прямой вопрос, это:

Range("A1").NumberFormat = "@"

или

Cells(1,1).NumberFormat = "@"

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


Ну это должно изменить формат текста.

Worksheets("Sheetname").Activate
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select
Selection.NumberFormat = "@"

One point: вы должны установить свойство NumberFormat перед загрузкой значения в ячейку. У меня было девятизначное число, которое все еще отображалось как 9.14 E+08, когда NumberFormat был установлен после загрузки ячейки. Установка свойства перед загрузкой значения заставила число появиться так, как я хотел, как прямой текст

или:

не могли бы вы сначала попробовать autofit.
Excel_Obj.Колонки ("A: V").EntireColumn.AutoFit