2015-01-28 3 views
0

, пожалуйста, пройдите по следующему коду:Вызов макросов из диапазона/списка

1) Цель: Запустить макросы, указанные в диапазоне.

2) Диапазон ("B1: B101") содержит список макросов, которые нужно запустить. Например, ячейка B1 содержит слово Macro1, которое относится к макросу с тем же именем, B2 относится к Macro2 и т. Д.

3) Macro1, Macro2 ... уже созданы.

4) Я работал в следующем коде, но не повезло еще:

Dim mCell As Range 
Dim mRange As Range 
Dim mMacro As String 
mMacro = mCell.Value 

Set mRange = Sheets("Sheet1").Range("B1:B101") 

For Each mCell In mRange.Cells 
    Application.Run Module2.mMacro 
Next mCell 

ответ

0

Совершено некоторые изменения в коде, проверьте, если это то, что вы хотите:

Sub try() 

Dim mCell As Range 
Dim mRange As Range 
Dim mMacro As String 


Set mRange = Sheets("Sheet1").Range("B1:B101") 

For Each mCell In mRange.Cells 
    mMacro = mCell.Value 
    Application.Run "Module2." & mMacro 
Next mCell 

End Sub 
+0

Это работает на fect! Благодаря! – Flavinho

1

Метод Application.Run не принимает String в качестве аргумента, пытаются передать имя в виде строки:

Application.Run "Module2." & mCell.Value 
Смежные вопросы