2013-08-22 21 views
11

Sto provando a chiamare un sub su un altro foglio di lavoro ma ho ricevuto un messaggio di errore di runtime.Impossibile eseguire la macro ... la macro potrebbe non essere disponibile in questa cartella di lavoro

In particolare, in questi fogli di lavoro sono presenti due fogli di lavoro e più VBA secondari. In uno del Progetto VBA (dire workbook1.xlsm), ho il seguente codice:

Sub AnalysisTableMacro() 
Workbooks("Python solution macro.xlsm").Activate 
Application.Run "Python solution macro.xlsm!.PreparetheTables" 
End Sub 

Ma ho ottenuto il seguente errore. Le macro su entrambi i fogli di lavoro sono abilitate. In entrambi i fogli di lavoro, i sottotitoli sono in Module1.

Impossibile eseguire la macro "Workbook.xlsm! PrepareTheTables". La macro potrebbe non essere disponibile in questa cartella di lavoro o tutte le macro potrebbero essere disabilitate.

Ho provato anche Application.Run "Python solution macro.xlsm!Module1.PreparetheTables" ma non ha funzionato.

Qualsiasi aiuto sarebbe apprezzato.

+3

Hai provato senza il punto dopo il punto esclamativo? – pnuts

risposta

1

Elimina la macro del tuo nome e crea nuovamente. Ho fatto questo e la macro ha funzionato.

+1

Non sono entusiasta di questa soluzione (naturalmente), ma quando gli altri consigli fallirono questo successo –

7

Per Microsoft's KB, prova che consente l'accesso programmatico al progetto di Visual Basic:

  1. Fare clic sul pulsante Microsoft Office, quindi fare clic su Opzioni di Excel.
  2. Fare clic su Centro protezione.
  3. Fare clic su Impostazioni Centro protezione.
  4. Fare clic su Impostazioni macro.
  5. Fare clic per selezionare la casella di controllo Accesso sicuro al modello di oggetto progetto VBA.
  6. Fare clic su OK per chiudere la finestra di dialogo Opzioni di Excel.
  7. Potrebbe essere necessario chiudere e riaprire excel.
0

La ragione più probabile di questo errore è che la funzione di protezione in Excel VBA che non consentirebbe il codice VBA da eseguire. L'utente deve esplicitamente dare il permesso di eseguire i macro di Excel accanto alla cartella di lavoro. Questo può richiedere o meno richiede l'accesso programmatico al progetto Visual Basic.

Cosa ha risolto questo errore per me è stato: -

  1. abilitare la modifica e abilitare il contenuto

    Enable Content Button

  2. Modifica impostazioni macro senza l'accesso programmatico Steps and details
  3. Modifica delle impostazioni macro insieme con accesso programmatico (sconsigliato se il processo di cui sopra funziona. Questo darebbe il controllo codice per modificare gli elementi nel progetto VBA stessa compresi i riferimenti e Codice stesso - Reference)

    Steps Here

1

ho avuto lo stesso problema di OP e l'ho trovato era dovuto alle opzioni dichiarazione errata:

' Comment comment 

Options Explicit 

Sub someMacroMakechart() 

in un sottomodulo, anziché corretto;

' Comment comment 

Option Explicit 

Sub someMacroMakechart() 
4

Se si dispone di uno spazio nel nome della cartella di lavoro, è necessario utilizzare virgolette singole (') attorno al nome del file. Ho anche rimosso il punto.

Application.Run "'Python solution macro.xlsm'!PreparetheTables" 
0

Salvare come .xlsm (cartella di lavoro con attivazione macro di Excel).

0

Nel mio caso era dovuto ad una procedura pubblica in un modulo diverso e una procedura privata nel modulo chiamante con lo stesso nome. VBA non distingue tra i due, e quindi ha dato l'errore ottuso.

2

Aveva lo stesso problema e I 'Compiled VBA Project' che identificava un errore. Dopo la correzione e la compilazione, le macro hanno funzionato.

0

ho dovuto togliere tutti i trattini e underscore da nomi di file e di macro, assicurarsi che macro sono stati abilitati e aggiungerli modulo name.macro nome

Questo è quello che ho finito con: Application.Run (" '" & WbName & "'" & '! ModuleName.MacroName')

0

Questo errore compare quando si apre una macro che viene salvato l'ultima volta che ha un errore di sintassi in esso. Il messaggio si riferirà alla macro che sta chiamando il sub o la funzione errata. Per risolvere questo problema, di solito cerco di eseguire separatamente le ultime macro modificate.

0

Ho avuto un problema con questo errore, ho scoperto che il nome del file stava causando il problema.

mi stava chiamando così: Application.Run " '" & strPath & strNome & "'! UPC.PrintaFew"

Lo strNome variabile conteneva un apostrofo in esso che, ovviamente incasinato le cose. Mi ci sono voluti ore per capirlo. Ma una volta rimosso l'apostrofo dal nome del file, ha funzionato.

-1

controllo per:

Application.Run "'Python solution macro.xlsm'!ThisWorkbook.PreparetheTables" 

utilizzare il nome del modulo.

Problemi correlati