Замена форматов ячеек

Дэвиду нужно найти и изменить каждое вхождение определенного формата ячеек в книге с несколькими листами. Например, ему может потребоваться найти все ячейки, отформатированные как «Валюта», и изменить этот формат на «Общий». Он задается вопросом, как выполнить эту задачу.

Лучший способ выполнить эту задачу зависит от версии Excel, которую вы используете. Если вы используете Excel 2003, вы можете просто использовать инструмент Excel «Найти и заменить», чтобы внести изменения. Выполните следующие действия:

  1. Нажмите Ctrl + H . Excel отображает вкладку «Заменить» диалогового окна «Найти и заменить».
  2. При необходимости нажмите кнопку «Параметры», чтобы увеличить диалоговое окно. (См. Рис. 1.)
  3. Рис. 1. Вкладка «Заменить» диалогового окна «Найти и заменить».

  4. Нажмите кнопку «Формат» справа от строки «Найти». Excel отображает диалоговое окно “Найти формат”.
  5. Убедитесь, что отображается вкладка “Число”. (См. Рис. 2.)
  6. Рис. 2. Вкладка Number диалогового окна Find Format.

  7. Используйте элементы управления в диалоговом окне, чтобы указать формат, который вы хотите найти.
  8. Нажмите кнопку «ОК», чтобы закрыть диалоговое окно «Найти шрифт».
  9. Нажмите кнопку «Формат» справа от строки «Заменить на». Excel отображает диалоговое окно “Замена формата”.
  10. Убедитесь, что отображается вкладка “Число”.
  11. Используйте элементы управления в диалоговом окне, чтобы указать формат, который вы хотите использовать в качестве вашу замену.
  12. Нажмите OK, чтобы закрыть диалоговое окно “Замена шрифта”.
  13. Используйте раскрывающийся список “Внутри”, чтобы выбрать “Рабочая книга”.
  14. Щелкните «Заменить все».

Если вы используете старую версию Excel, то инструмент «Найти и заменить» не позволяет выполнять поиск или заменять форматирование. Вместо этого вы должны использовать макрос для внесения изменений. Вот пример макроса, который просто просматривает все используемые ячейки в книге и устанавливает для всех форматов значение General.

Sub FormatGeneral () Dim iSht As Integer Dim rng As Range For iSht = 1 To Sheets.Count Установите rng = Worksheets (iSht) .UsedRange With rng .NumberFormat = «General» Конец с помощью NextEnd Sub

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

Sub CurrencyToGeneral () Dim iSht As Integer Dim rng As Range Dim c As Range For iSht = 1 To Sheets.Count для каждого c в листах (iSht) .UsedRange.Cells Если c.NumberFormat = «$ #, ## 0.00», то c. NumberFormat = «General» End If Next c NextEnd Sub

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

Public Sub UpdateFormats () Dim rFind As Range Dim rReplace As Range Dim rNextCell As Range Dim sNewFormat As String Dim sOldFormat As String Dim ws As Worksheet On Error Resume Next ‘Определите старый формат. Установите rFind = Application.InputBox (_ prompt: = «Выберите ячейку, которая использует формат» & _ «, которую вы хотите найти», _ Type: = 8) Если rFind — это ничего, тогда If MsgBox («Вы хотите выйти?», VbYesNo) = vbYes Then Exit Sub ElseIf InStr (1, rFind.Address, «:», vbTextCompare)> 0 Then MsgBox «Пожалуйста, выберите только одна ячейка «. Установите rFind = Nothing End If End If Loop until Not rFind Is Nothing sOldFormat = rFind.NumberFormat ‘Определите новый формат Do Set rReplace = Application.InputBox (_ prompt: = «Выберите ячейку, используя новый формат», _ Type: = 8) Если rReplace Is Nothing, тогда If MsgBox («Вы хотите выйти?», VbYesNo) = vbYes Then Exit Sub ElseIf InStr (1, rReplace.Address, «:», vbTextCompare)> 0 Then MsgBox «Пожалуйста, выберите только один клетка.» Set rReplace = Nothing End If End If Loop until Not rReplace Is Nothing sNewFormat = rReplace.NumberFormat ‘Выполните замену For Each ws In ActiveWorkbook.Worksheets For Each rNextCell In ws.UsedRange If rNextCell.NumberFormat = sOldFormat.Тогда rNextFormat Если Next rNextCell Next ws MsgBox «Выбранный формат был изменен.» End Sub

Источник: frestage.ru

Бытовой вопрос