如果单元格在任何工作表中包含字符串,则Excel VBA宏设置对齐

时间:2018-05-01 22:06:20

标签: excel vba excel-vba

我可以在一个工作表上使用它,但不能用于所有工作表。我想在单元格字符串中找到包含单词“Figure”的任何单元格,并将该单元格的对齐方式设置为左对齐。我在这里做错了什么?

'如果工作表中的任何单元格包含单词“对齐”,则将其对齐

Dim SrchRng As Range, cel As Range

Set SrchRng = Range("$A1:$AZ200")

For Each WS In Worksheets
     With WS

        For Each cel In SrchRng
            If InStr(1, cel.Value, "*Figure*") > 0 Then
                cel.HorizontalAlignment = xlHAlignLeft
            End If
        Next cel

     End With
Next WS

1 个答案:

答案 0 :(得分:0)

您的代码的主要问题是您只在工作表循环之外设置SrchRng并且没有任何明确的工作表限定,因此它在设置时为当前“活动”工作表设置,并且从未在内部更改环

所以你可能想要使用这段代码:

Dim cel As Range
Dim WS As Worksheet

For Each WS In Worksheets
    For Each cel In WS.Range("$A1:$AZ200")
        If InStr(1, cel.Value, "Figure") > 0 Then cel.HorizontalAlignment = xlHAlignLeft
    Next
Next