Questo è il mio codice di provachiamata un sub VBA utilizzando un valore stringa
Sub dotask()
Dim qusub As String
qusub = Worksheets("Task List").Range("C2").Value
MsgBox qusub
Application.Run qusub
End Sub
Sub msg1()
MsgBox "sub msg1"
End Sub
Sub msg2()
MsgBox "sub msg2"
End Sub
Sub msg3()
MsgBox "sub msg3"
End Sub
Sub msg4()
MsgBox "sub msg4"
End Sub
Tutto questo è contenuto in un unico modulo standard. Ho letto Trying to call a Sub with a String - VBA e ho scritto il mio codice in base a ciò che ho trovato lì (cioè utilizzando Application.Run). Il foglio di lavoro C2 della Lista attività contiene "msg3" al momento. Quando eseguo sub "doTask" Ho ottengo una finestra di messaggio che dice "msg3" come voglio, ma poi ricevo il seguente messaggio di errore:
run-time '1004':
Non può eseguire il macro 'msg3'. La macro potrebbe non essere disponibile in questa cartella di lavoro o tutte le macro potrebbero essere disabilitate.
Sto lavorando su Excel 2010 e il file è .xlsm
- cosa devo fare per ottenere il mio codice da eseguire come lo voglio?
Hmm, questo codice è contenuto in un modulo? –
Sì, tutto questo è contenuto in un singolo modulo ed è l'unico modulo in questo file –
Vedere questa domanda precedente: http://stackoverflow.com/questions/19845944/dynamic-function-calls-in-excel-vba – Rory