У меня есть файл Excel, который имеет 12 листов, каждый из которых соответствует месяцу. У меня есть три макроса, которые выполняются на листе, на котором они выполняются. Можно ли сделать это так, чтобы, если я запустил макрос в листе Октябрь, он также запустился в листе ноябрь и декабрь?

Проще говоря, "математически". У меня есть n листов. Я выполняю макрос в листе k (k> 0 && k <= n) и хочу, чтобы этот же макрос выполнялся в листах <k +1, k +2, ..., n>.

1 ответ1

0

Что-то вроде этого?

  1. RunMacroOnAllSheetsToRight по каждому листу от активного листа до последнего листа
  2. Для этих листов вызывается функция MyFunction которая получает индекс листа в качестве аргумента. Msgbox - это просто пример действия. Измените это к своим потребностям.

Sub RunMacroOnAllSheetsToRight()
    For i = ActiveSheet.Index To Sheets.Count
        Call MyFunction(i)
    Next i
End Sub

Function MyFunction(i)
    'Code goes here
    MsgBox "I'm currently on sheet " & ThisWorkbook.Sheets(i).Name
End Function

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