Errore durante la chiamata di subroutine “Previsto Variabile o di una Procedura, non il Modulo.”

Sto cercando di creare una subroutine che si chiama uno di un paio di altri sottoprogrammi.

Quando io uso una chiamata all’interno di un’istruzione se ricevo un errore:

Previsto Variabile o di una Procedura, non il Modulo.

Ecco la chiamata di procedura:

Call schedule_3_day(shift1, ActiveWorkbook.Sheets("Employees"), ActiveWorkbook.Sheets("3 Day Template"))

Ecco la funzione a cui si riferisce.

Sub schedule_3_day(ByRef sourcesheet As Worksheet, ByRef employeesheet As Worksheet, ByRef template As Worksheet)

Su di essa la propria, vale a dire quando si tratta di un autonomo subroutine, schedule_3_day funziona come previsto. Sto cercando di modificare a passare variabili definite dall’utente in esso.

  • Hai chiamato il tuo moduli? Questo è il messaggio di errore che si ottiene se si chiama una routine in un modulo, quando entrambi hanno lo stesso nome.
  • Si prega di inviare il tuo commento come una risposta, in modo che l’OP può accettare.
  • Io di solito non postare due frase risposte, ma si sono corretti, mi hanno inviato questa come risposta. Ho aggiunto un po ‘ di sfondo che può essere utile ad altri lettori.
  • per la risposta 🙂
  • Ho capito, non mi piace al post 2, frase risposte. E vorrei anche aggiungere ulteriori dettagli. 🙂

 

One Reply
  1. 10

    Sfondo

    Quando Excel crea i moduli di nomi poi Module1, Module2 e così via. Questo può creare confusione se, come me, dividere la tua routine in set: Globale, Task1, 2 e così via.

    Non tutti sembrano sapere che si può rinominare Excel moduli. Questo è reso evidente in Access in cui ti viene chiesto il nome di un modulo. Per Excel è scoprire questa struttura per se stessi.

    Selezionare il modulo, fare clic su F4 e i moduli proprietà apparirà in una finestra mobile per un modulo. L’unica proprietà è Name che è possibile modificare per nulla conforme alle regole per un nome di variabile. Utilizzando questo strumento è possibile rinominare il mio moduli: Global, Task1, Task2 e così via, che mi permette di identificare facilmente il modulo ho voglia di lavorare oggi.

    Limitazione

    Credo che tu abbia incontrato una limitazione con la scelta del nome per un modulo.

    Se rinomino un modulo Task1 quindi un sub, una funzione o una variabile globale all’interno di tale modulo denominato Task1 è invisibile dall’esterno.

    Il messaggio di errore “Previsto Variabile o di una Procedura, Non Module” è prevedibile se il modulo contenente sub schedule_3_day(ByRef ... denominato schedule3_day.

    • Hai assolutamente ragione, Signore!

Lascia un commento