遍历单元格并在Excel宏中更改字体

问题描述 投票:0回答:2

我试图遍历一行中的所有单元格,然后使用以下条件更改字体大小:

  • 如果字体大小小于10,则将字体大小更改为10
  • 如果字体大小大于10,则不执行任何操作

到目前为止,此方法仅在]中有效”,工作表中的所有单元格均具有相同的字体大小,但如果工作表中的任何单元格具有不同的字体大小,则返回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)。有人可以阐明我至少如何在一栏中完成此工作吗?我很确定,如果我从那里开始,那我就可以使它工作。谢谢!

我正在尝试循环浏览所有单元格,然后使用以下条件更改字体大小:如果字体大小小于10,则将字体大小更改为10。如果字体大小为...

excel vba fonts size
2个回答
0
投票

您可以遍历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

0
投票

保留已注释的代码,您想访问每个单元格(不是所有单元格,这是.Cells.的作用:

© www.soinside.com 2019 - 2024. All rights reserved.