Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:更新所有工作表的格式_Vba_Excel - Fatal编程技术网

Excel VBA:更新所有工作表的格式

Excel VBA:更新所有工作表的格式,vba,excel,Vba,Excel,我阅读了一些在线教程,并使用宏记录学习如何设置格式。但我想知道有没有一种方法可以不使用.Select来执行以下操作?或者程序员首选的方式是什么 对简单宏的要求: 循环浏览所有工作表(仅可见) 将粗体格式设置为顶行,并将背景设置为灰色 将选择重置为A1位置 () 可以直接针对范围对象执行此操作: For Each ws In ThisWorkbook.Worksheets If ws.Visible Then ws.Rows(1).Font.Bold = True

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

对简单宏的要求:

  • 循环浏览所有工作表(仅可见)
  • 将粗体格式设置为顶行,并将背景设置为灰色
  • 将选择重置为A1位置
  • ()


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

    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”)。选择
    。我把它加到了我的答案上。我想这就是我需要的!谢谢你,汉伯恩!
    
    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