遍历单元格并更改字体

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

我正在尝试遍历一行中的所有单元格并使用以下条件更改字体大小:

  • 如果字体大小小于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)。

我至少如何在一列中完成此操作?我很确定,如果我从那里开始,我就能使它工作。

excel vba fonts size
3个回答
3
投票

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


3
投票

根据我的评论,我认为这可能是FindFormatReplaceFormat的好用例:


2
投票

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

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