Vai al contenuto principale

Come salvare e utilizzare le macro VBA in tutte le cartelle di lavoro in Excel?

Autore: Zhoumandy Ultima modifica: 2024-12-02

In alcuni casi, potresti dover usare una macro VBA più volte in futuro. È possibile salvare un modulo VBA in modo che sia disponibile in tutti i nuovi documenti e cartelle di lavoro? La risposta è sì. In questo tutorial, introdurremo un modo semplice per raggiungere il tuo obiettivo.

Uno screenshot che mostra la finestra di dialogo Componenti aggiuntivi in ​​Excel

Salva e usa il codice VBA in tutte le cartelle di lavoro


Salva e usa il codice VBA in tutte le cartelle di lavoro

Ad esempio, si desidera utilizzare il codice VBA per convertire i numeri in parole inglesi e salva il modulo VBA in tutte le cartelle di lavoro nel caso in cui desideri utilizzare il codice VBA in futuro. Si prega di fare come segue.

1. premi il Alt + F11 chiavi in ​​Excel e apre il file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduli e incollare la seguente macro nella finestra del modulo.

Codice VBA: converte i numeri in parole

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3. Fare clic sul Risparmi nell'angolo in alto a sinistra della barra multifunzione o fare clic su Ctrl + S per aprire il Salva con nome finestra.
Uno screenshot che mostra l'opzione Salva nella finestra VBA

4. Nel Salva con nome finestra, immettere il nome della cartella di lavoro nel file Nome del file scatola. E seleziona il Componente aggiuntivo di Excel (*.xlam) opzione nel Salva come tipo menu `A tendina.
Uno screenshot che mostra la finestra di dialogo Salva con nome con la selezione del componente aggiuntivo di Excel (*.xlam) come tipo di salvataggio

5. Quindi fare clic su Risparmi pulsante per salvare la cartella di lavoro con codice VBA come file Componente aggiuntivo di Excel.
Uno screenshot che mostra la cartella di lavoro salvata come componente aggiuntivo di Excel

6. Torna al Excel, chiudere la cartella di lavoro vuota che è stata salvata come componente aggiuntivo di Excel.

7. Aprire una nuova cartella di lavoro con i dati da convertire. Inserisci la formula = NumberstoWords (A2) nella cella B2. Il # NOME? il valore di errore verrà restituito perché il codice VBA non è stato ancora applicato in tutte le cartelle di lavoro.
Uno screenshot dell'errore #NAME? prima di applicare la macro VBA salvata

8. Vai alla Sviluppatore scheda, fare clic Componenti aggiuntivi di Excel nel Add-ins gruppo.
Uno screenshot che mostra l'opzione Componenti aggiuntivi nella scheda Sviluppatore in Excel

9. il Aggiungere si apre la finestra di dialogo. Clicca il Scopri la nostra gamma di prodotti pulsante.
Uno screenshot della finestra di dialogo Componenti aggiuntivi in ​​Excel

10. Scegli il componente aggiuntivo che hai appena salvato, quindi fai clic su OK pulsante.
Uno screenshot che mostra la selezione di un file di componente aggiuntivo personalizzato in Excel

11. L'usanza Converti numero in parole aggiuntive è ora caricato e abilitato. Fai clic su OK pulsante per terminare l'impostazione.
Uno screenshot che mostra il componente aggiuntivo personalizzato nella finestra di dialogo Componenti aggiuntivi in ​​Excel

12. Ora quando inserisci la formula = NumberstoWords (A2) nella cella B2 e premere il tasto entrare chiave, verranno restituite le parole inglesi corrispondenti. Trascina la maniglia di riempimento automatico verso il basso per ottenere tutti i risultati.
Uno screenshot che mostra il risultato finale dei numeri convertiti in parole

Note:

Se è necessario eseguire il codice manualmente, non c'è modo di trovarlo dai passaggi precedenti. Per favore, non preoccuparti. Ci sono due strade per eseguire il codice.

  1. È possibile aggiungere codice a Barra degli strumenti rapida ed eseguire il codice ogni volta che si fa clic sul pulsante del codice sulla barra degli strumenti.
    Uno screenshot che mostra come aggiungere la macro VBA alla barra di accesso rapido
  2. Puoi anche premere direttamente Alt + F11 per aprire la casella di operazione del codice, trovare il codice e premere F5 correre.

Altre operazioni (articoli)

Un codice VBA per elencare tutti i componenti aggiuntivi in ​​Excel
In Excel, puoi aggiungere o inserire alcuni componenti aggiuntivi per gestire meglio i dati. Come sappiamo, possiamo andare alla finestra Opzioni per visualizzare tutti i componenti aggiuntivi, ma esiste un modo per elencare tutti i componenti aggiuntivi in ​​un foglio? Ora, in questo tutorial, fornisce un codice VBA per elencare tutti i componenti aggiuntivi in ​​Excel.

Come eseguire la macro VBA quando si apre o si chiude la cartella di lavoro?
In questo articolo, ti dirò come eseguire il codice VBA durante l'apertura o la chiusura della cartella di lavoro ogni volta.

Come proteggere / bloccare il codice VBA in Excel?
Proprio come puoi usare la password per proteggere cartelle di lavoro e fogli di lavoro, puoi anche impostare una password per proteggere le macro in Excel.

Come utilizzare il ritardo dopo aver eseguito una macro VBA in Excel?
In alcuni casi, potrebbe essere necessario impostare un ritardo del timer per l'attivazione di una macro VBA in Excel. Ad esempio, quando si fa clic per eseguire una macro specificata, questa avrà effetto dopo 10 secondi. Questo articolo ti mostrerà un metodo per ottenerlo.

I migliori strumenti per la produttività in ufficio

🤖 Assistente AI di Kutools: Rivoluziona l'analisi dei dati basandosi su: Esecuzione intelligente   |  Genera codice  |  Crea formule personalizzate  |  Analizzare i dati e generare grafici  |  Richiama le funzioni di Kutools...
Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Tools (aggiungi testo, Rimuovi personaggi, ...)   |   50+ Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Tools (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Tools (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Tools (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!