Ich versuche, ein Unterprogramm auf einem anderen Arbeitsblatt aufzurufen, aber ich erhalte eine Fehlermeldung zur Laufzeit.
Genauer gesagt habe ich zwei Arbeitsblätter und mehrere VBA-Unterprogramme in diesen Arbeitsblättern. In einem der VBA-Projekte (z. B. workbook1.xlsm) habe ich den folgenden Code:
Sub AnalysisTableMacro()
Workbooks("Python solution macro.xlsm").Activate
Application.Run "Python solution macro.xlsm!.PreparetheTables"
End Sub
Aber ich habe den folgenden Fehler. Die Makros auf beiden Arbeitsblättern sind aktiviert. In beiden Arbeitsblättern befinden sich die Unterelemente in Modul1.
Das Makro 'Workbook.xlsm!PrepareTheTables' kann nicht ausgeführt werden. Das Makro ist möglicherweise in 'dieser Arbeitsmappe nicht verfügbar oder alle Makros sind deaktiviert.
Ich habe auch Application.Run "Python solution macro.xlsm!Module1.PreparetheTables"
versucht, aber das hat nicht funktioniert.
Versuchen Sie gemäß [Microsoft's KB] (https://support.microsoft.com/en-us/kb/813969), den programmatischen Zugriff auf das Visual Basic-Projekt zu erlauben:
Löschen Sie Ihr Namensmakro und erstellen Sie es erneut. Ich habe das getan, und das Makro hat funktioniert.
Ich hatte das gleiche Problem wie OP und fand heraus, dass es daran lag, dass die Optionserklärung falsch geschrieben war:
' Comment comment
Options Explicit
Sub someMacroMakechart()
in einem Untermodul, anstatt richtig;
' Comment comment
Option Explicit
Sub someMacroMakechart()