it-roy-ru.com

Как изменить формат ячейки на текст, используя VBA

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

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

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

50
Code Hungry

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

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

Или же

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

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

87
Justin Self

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

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

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

ИЛИ ЖЕ:

Не могли бы вы сначала попробовать автоподбор.
Excel_Obj.Columns ( "А: В") EntireColumn.AutoFit.

5
Dan McSweeney