2015-01-30 5 views
0

мне нужна ваша помощь, пожалуйста, следующее:VBA Excel OnKey с переменной

  1. Мне нужно запускать существующие макросы, нажав сочетание клавиш.

  2. Клавиша быстрого вызова для определения: Shift + Control + (число от 1 до 30).

  3. Столбец В содержит цифры от 1 до 30 в следующем диапазоне: B14 = 1, B15 = 2 .... B43 = 30.

  4. Столбец E содержит имена макросов, например E14 = MacroA, E15 = MacroB .... E43 = MacroAD.

  5. Следовательно, нажав Shift + Control + 10, MacroJ должен выполнить .

Я сделал следующий код, но не повезло:

Sub test() 

    Dim n As Integer 

    For n = 1 To 30 

    Dim macroname As String 

    macroname = Application.VLOOKUP(n, Range("B14:E43"), 4, false).Value 

    Application.OnKey "+^n","macroname" 

End Sub 
+0

вы забыли 'next n', перед' end sub', а 'dim macroname' должен быть до цикла' for n'. –

ответ

0

Вы очень близки!
код будет «почти» будет работать, если у вас макрос как:

Sub macroname() 
    MsgBox "Hello world" 
End Sub 

Вам нужен синтаксис как:

Dim s1 As String 
s1 = "+^" & CStr(n) 
Application.OnKey s1, macroname 

Я не знаю, если п может превышать

Смежные вопросы