我正在尝试遍历一行中的所有单元格并使用以下条件更改字体大小:
如果工作表中的所有单元格都具有相同的字体大小,则此方法有效。如果工作表中的任何单元格具有不同的字体大小,它将返回null
。如果我在A1中的字体大小为8,在A2中的字体大小为20,则没有变化。
Sub SetSheetFont(ws As Worksheet)
Dim x As Integer
Dim NumRows As Long
Application.ScreenUpdating = False
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
Range("A1").Select
With ws
' If the font size is lower than 10, set to 10
For x = 1 To NumRows
If .Cells.Font.Size < 10 Then .Cells.Font.Size = 10
ActiveCell.Offset(1, 0).Select
Next
Application.ScreenUpdating = True
End With
End Sub
最终目标是遍历该列中的所有单元格,直到有一定数量的空单元格,然后从下一列开始(在本例中为B1)。
我至少如何在一列中完成此操作?我很确定,如果我从那里开始,我就能使它工作。
您可以遍历UsedRange
中的所有单元格>
Sub SetSheetFont(ws As Worksheet) Dim myCell As Range Application.ScreenUpdating = False With ws For each myCell in ws.UsedRange ' If the font size is lower than 10, set to 10 If myCell.Font.Size < 10 Then myCell.Font.Size = 10 Next End With Application.ScreenUpdating = True End Sub
旁注:通常,您想在代码中输入avoid using select
根据我的评论,我认为这可能是FindFormat
和ReplaceFormat
的好用例:
保留已注释的代码,您想访问每个单元格(不是所有单元格,这是.Cells.
的作用: