У меня есть код для конкретной модификации некоторых ячеек на странице. Я хотел бы применить этот код в один клик для всех страниц в файле Excel. Я использую VBA и я новичок в этом. Вот мой код:

Sub H() Dim B As Range, H As Range, I As Range For Each B In Range("B7:B49").Cells If IsNumeric(B) And B <> "" Then Cells(B.Row, 9) = Trim(Cells(B.Row + 1, 8)) & Trim(Cells(B.Row + 2, 8)) Cells(B.Row + 1, 8) = "" Cells(B.Row + 2, 8) = "" If B.Row > 50 Then Exit For End If Next B End Sub

Я хотел бы применить вышеупомянутый макрос ко всем страницам в листе Excel. Как я могу это сделать?

1 ответ1

0

Просто переберите листы (страницы) так же, как вы перебираете ячейки в диапазоне:

Sub H()
    Dim B As Range

    For S in Sheets
        For Each B In S.Range("B7:B49").Cells
            If IsNumeric(B) And B <> "" Then
                Cells(B.Row, 9) = Trim(Cells(B.Row + 1, 8)) & Trim(Cells(B.Row + 2, 8))
                Cells(B.Row + 1, 8) = ""
                Cells(B.Row + 2, 8) = ""
            End If
            If B.Row > 50 Then Exit For
        Next B
    Next S

End Sub

PS Возможно, имеет больше смысла иметь два оператора If независимыми; т.е. не иметь второй, вложенный в первый.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .