2016-02-01 3 views
1

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

Требование простой макро:

  1. петли через все рабочие листы (виден только)
  2. указан жирный формат в верхней строке, а цвет фона на серый
  3. Сброс выбора А1 положение

()

Sub SetAllTopRowBold() 
Dim ws As Worksheet 
On Error Resume Next 

For Each ws In ThisWorkbook.Worksheets 
    If ws.Visible Then 
     ws.Activate 
     Rows(1).Select 
     Selection.Font.Bold = True 
     Selection.Interior.Color = RGB(190, 190, 190) 
     Range("A1").Select 
    End If 
Next ws 
End Sub 

ответ

2

Вы можете сделать это непосредственно против объекта диапазон:

For Each ws In ThisWorkbook.Worksheets 
    If ws.Visible Then 
     ws.Rows(1).Font.Bold = True 
     ws.Rows(1).Interior.Color = RGB(190, 190, 190) 
     ws.Select 
     ws.Range("A1").Select 
    End If 
Next ws 
+0

А что, если выбор листа не A1? Поскольку предыдущий сотрудник иногда работал и спасал свою последнюю позицию. – George

+0

В моей спешке я не видел эту часть. В этом случае я думаю, что ваш текущий подход на самом деле является способом, за исключением добавления 'ws.', поскольку вы фактически не переключаете листы в код:' ws.Range («A1»). Выберите'. Я добавил это к моему ответу. – Hambone

+0

Я думаю, что это то, что мне нужно! Спасибо, Hambone! – George

Смежные вопросы