У меня есть столбец "продолжительность" в листе Excel. Его формат ячейки всегда изменяется — Я хочу преобразовать длительность от минут до нескольких секунд, но из-за форматирования ячейки она всегда дает мне разные ответы.
Я думал, что перед выполнением преобразования я мог бы преобразовать этот формат ячейки в текст, чтобы он учитывал это как текстовое значение, а не пытался автоотформатировать его.
В настоящее время я копирую все данные в Блокнот, а затем сохраняю их обратно на лист Excel, чтобы удалить весь предыдущий формат. Есть ли способ автоматизировать установку форматирования ячейки в текст с помощью VBA?
Чтобы ответить на ваш прямой вопрос, это:
Range("A1").NumberFormat = "@"
или
Cells(1,1).NumberFormat = "@"
Однако я предлагаю изменить формат на то, что вы действительно хотите отобразить. Это позволяет сохранить тип данных в ячейке и легко использовать формулы ячеек для управления данными.
Ну, это должно изменить формат на текст.
Worksheets("Sheetname").Activate
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select
Selection.NumberFormat = "@"
Один момент: вы должны установить свойство NumberFormat ПЕРЕД загрузкой значения в ячейку. У меня было девятизначное число, которое все еще отображалось как 9.14E + 08, когда NumberFormat был установлен после загрузки ячейки. Устанавливая свойство перед загрузкой значения, количество отображалось так, как я хотел, как прямой текст
ИЛИ
Не могли бы вы сначала попробовать автозапуск.
Excel_Obj.Columns( "А: В" ). EntireColumn.AutoFit