Форматирование Числа ячеек во всем Макро книги Excel

#excel #vba

Вопрос:

Я хочу создать макрос, который форматирует все ячейки Excel wourkbook в виде числа.

У меня есть этот код:

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

Но это только для определенного диапазона.

Вы можете мне помочь, пожалуйста?

Комментарии:

1. Range("A1:Z1000").NumberFormat = "0.00" — Просто измените значения на то, что вы хотите.

2. @braX, Но мне нужен весь Excel wourkbook, то есть все страницы из книги.

3. Затем проведите его по всем листам, как это делается в ответе ниже.

Ответ №1:

 Dim sht As Worksheet

For Each sht In Worksheets
    sht.Cells.NumberFormat = "0.00"
Next sht
 

Это должно сработать

Хммм, я думал, это сработает:

 Dim wb as Workbook: Set wb = ThisWorkbook
wb.Sheets.NumberFormat = "0.00"
 

Это должно было сработать, учитывая, что это сработало:

 Dim wb As Workbook: Set wb = ThisWorkbook
wb.Sheets.Select: Selection.NumberFormat = "0.00"
 

Должно быть, я упускаю что-то тонкое в синтаксисе…

Комментарии:

1. Я думаю NumberFormat , что это недоступное свойство sheets объекта, который является объектом уровня коллекции. Таким образом, в принципе, это применимо к Selection объекту и, следовательно, работает.

2. Да, определенно так кажется. Мне очень не нравится использовать . Выберите, однако!

Ответ №2:

Это работает для форматирования всех ячеек во всех листах вашей книги.

 Sub format_as_numbers()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Cells.NumberFormat = "0.00"
Next
End Sub
 

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

Комментарии:

1. Отбросьте «диапазон» и замените его «ячейками», т. е. ws.ячейками. Формат номера, и вы не склонны к различиям в размерах xlsx и xls.

2. @Amiga500 Спасибо.