Макрос Excel VBA для установки выравнивания влево, если ячейка содержит строку в ЛЮБОМ рабочем листе - PullRequest
0 голосов
/ 02 мая 2018

Я могу заставить это работать на одном листе, но не на ВСЕХ листах. Я хочу найти любую ячейку, содержащую слово «Рисунок» в строке ячейки и установить выравнивание этой ячейки по левому краю. Что я тут не так делаю?

'Если какая-либо ячейка на листе содержит слово РИСУНОК, выровняйте его по левому краю

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 голосов
/ 02 мая 2018

Основная проблема с вашим кодом заключается в том, что вы устанавливали 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...