Vai al contenuto principale

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

In alcuni casi, potrebbe essere necessario utilizzare una macro VBA più volte in futuro. È possibile salva in qualche modo il modulo VBA in qualsiasi nuovo documento quindi sarà disponibile in tutte le cartelle di lavoro? La risposta è si. In questo tutorial, introdurremo un modo semplice per raggiungere il tuo obiettivo.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 1

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 ed 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.doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 2

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.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 3

5. Quindi fare clic su Risparmi pulsante per salvare la cartella di lavoro con codice VBA come file Componente aggiuntivo di Excel.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 4

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.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 5

8. Vai alla Costruttori scheda, fare clic Componenti aggiuntivi di Excel nel Add-ins gruppo.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 6

9. il Aggiungere si apre la finestra di dialogo. Clicca il Scopri la nostra gamma di prodotti pulsante.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 7

10. Scegli il componente aggiuntivo che hai appena salvato, quindi fai clic su OK pulsante.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 8

11. Quindi il file Converti numero in parole aggiuntive personalizzato viene inserito e attivato. Clicca il OK pulsante per terminare l'impostazione.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 9

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.
doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 10

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.
    doc salva-usa-vba-macro-in-tutte le cartelle di lavoro 11
  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.

 


  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne e conservazione dei dati; Contenuto delle celle divise; Combina righe duplicate e somma / media... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Formule preferite e di inserimento rapido, Intervalli, grafici e immagini; Crittografa celle con password; Crea mailing list e invia email ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Raggruppamento tabelle pivot per numero della settimana, giorno della settimana e altro ... Mostra celle sbloccate e bloccate da diversi colori; Evidenzia le celle che hanno formula / nome...
scheda kte 201905
  • 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!
fondo officetab

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much hundred timessss
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations