好的,Excel VBA再次打败了我。我怀疑当我看到答案时,我会觉得自己像个白痴。幸运的是,随着年龄的增长,我逐渐适应了这一点。这是我的代码:
Option Explicit
Sub FormatAllSheets()
Dim shNames()
ReDim shNames(Worksheets.Count - 1)
Dim shIndex As Integer
For shIndex = 0 To UBound(shNames)
shNames(shIndex) = Worksheets(shIndex + 1).Name
Next shIndex
Range("A1", "ZZ1").Select
Sheets(shNames).Select
Selection.Font.Bold = True
Selection.WrapText = True
End Sub
非常感谢, 托尼利马
答案 0 :(得分:3)
最简单的方法可能如下:
Sub FormatFirstRow()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
With sh.Range("A1:ZZ1")
.Font.Bold = True
.WrapText = True
End With
Next sh
End Sub
答案 1 :(得分:1)
user3561813只是打败了我的完整答案,但我会将With
行更改为:
With sh.Rows(1)
这样你就不必假设第一行的宽度
了答案 2 :(得分:1)
好的,玩这个,有一种方法可以做到没有循环,但问题是你必须做一个选择(选择是我的宠物讨厌):
Sub BoldFirst()
Worksheets.Select
Rows(1).select
Selection.Font.Bold = true
Selection.WrapText = True
End Sub
我不是100%肯定,但我认为Select Method
是激活多张纸上的行所必需的。如果您不执行Select
,它只会在活动表格中显示为粗体。
它可能会或可能不会比循环纸张更快。看看是否存在性能差异会很有趣。