【问题标题】:Excel VBA: Update the formatting for all worksheets [duplicate]Excel VBA:更新所有工作表的格式[重复]
【发布时间】:2016-05-09 08:49:17
【问题描述】:

我阅读了一些在线教程,并使用宏记录来学习如何设置格式。但我想知道有没有办法在不使用 .Select 的情况下执行以下操作?或者程序员的首选方式是什么?

简单宏的要求:

  1. 遍历所有工作表(仅可见)
  2. 将粗体格式设置为顶行,并将背景设置为灰色
  3. 将选择重置为 A1 位置

()

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以直接针对范围对象执行此操作:

    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
    

    【讨论】:

    • 如果工作表的选择不是A1怎么办?因为以前的同事有时会工作并保存他们最后的职位。
    • 我匆忙中没有看到那部分。在这种情况下,我认为您当前的方法实际上是可行的方法,除了添加ws.,因为您实际上并没有在代码中切换工作表:ws.Range("A1").Select。我将其添加到我的答案中。
    • 我想这就是我需要的!谢谢汉波恩!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多