Direkt zum Inhalt

Wie speichern und verwenden Sie Ihre VBA-Makros in allen Arbeitsmappen in Excel?

In einigen Fällen müssen Sie möglicherweise ein VBA-Makro in Zukunft mehrmals verwenden. Ist es möglich, zu Speichern Sie das VBA-Modul irgendwie in einem neuen Dokument wird es also in allen Arbeitsmappen verfügbar sein? Die Antwort ist ja. In diesem Tutorial stellen wir Ihnen eine einfache Möglichkeit vor, Ihr Ziel zu erreichen.
doc save-use-vba-macros-in-all-workbooks 1

Speichern und verwenden Sie den VBA-Code in allen Arbeitsmappen


Speichern und verwenden Sie den VBA-Code in allen Arbeitsmappen

Beispielsweise möchten Sie den VBA-Code verwenden, um Zahlen in englische Wörter umwandeln und Speichern Sie das VBA-Modul in allen Arbeitsmappen falls Sie den VBA-Code in Zukunft verwenden möchten. Bitte gehen Sie wie folgt vor.

1. Drücken Sie die Taste Alt + F11 Tasten in Excel, und es öffnet sich die Microsoft Visual Basic für Applikationen Fenster.

2 Klicken Insert > Modul und fügen Sie das folgende Makro in das Modulfenster ein.

VBA-Code: Konvertieren Sie Zahlen in Wörter

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. Klicken Sie auf die Speichern Symbol in der oberen linken Ecke der Multifunktionsleiste oder klicken Sie auf Strg + S öffnen Speichern unter Fenster.doc save-use-vba-macros-in-all-workbooks 2

4. In dem Speichern unter Geben Sie im Fenster den Namen der Arbeitsmappe ein Dateiname Kasten. Und wählen Sie die aus Excel-Add-in (*.xlam) Option in der Speichern als Typ Dropdown-Liste.
doc save-use-vba-macros-in-all-workbooks 3

5. Klicken Sie dann auf Speichern Schaltfläche zum Speichern der Arbeitsmappe mit VBA-Code als Excel-Add-In.
doc save-use-vba-macros-in-all-workbooks 4

6. Zurück zum Excel, schließen Sie die leere Arbeitsmappe, die als Excel-Add-In gespeichert wurde.

7. Öffnen Sie eine neue Arbeitsmappe mit Daten, die konvertiert werden müssen. Geben Sie die Formel ein = NumberstoWords (A2) in Zelle B2. Das # NAME? Der Fehlerwert wird zurückgegeben, da der VBA-Code noch nicht in allen Arbeitsmappen angewendet wurde.
doc save-use-vba-macros-in-all-workbooks 5

8. Gehen Sie zum Entwickler:in / Unternehmen Tab, klicken Sie auf Excel-Add-Ins der Add-Ins Gruppe.
doc save-use-vba-macros-in-all-workbooks 6

9. Das Add-In Das Dialogfeld wird angezeigt. Drücke den Entdecken .
doc save-use-vba-macros-in-all-workbooks 7

10. Wählen Sie das soeben gespeicherte Add-In aus und klicken Sie dann auf OK .
doc save-use-vba-macros-in-all-workbooks 8

11. Dann die Zahlen in Wörter konvertieren Add-in Sie angepasst ist eingefügt und eingeschaltet. Drücke den OK Taste, um die Einstellung zu beenden.
doc save-use-vba-macros-in-all-workbooks 9

12. Jetzt, wenn Sie die Formel eingeben = NumberstoWords (A2) in Zelle B2 und drücken Sie die Enter drücken, werden die entsprechenden englischen Wörter zurückgegeben. Ziehen Sie den Ziehpunkt für das automatische Ausfüllen nach unten, um alle Ergebnisse zu erhalten.
doc save-use-vba-macros-in-all-workbooks 10

Notizen:

Wenn Sie den Code ausführen müssen manuell, gibt es keine Möglichkeit, es mit den obigen Schritten zu finden. Bitte mach dir keine Sorgen. Es gibt zwei Arten um den Code auszuführen.

  1. Sie können Code hinzufügen Schnellsymbolleiste und führen Sie den Code jedes Mal aus, wenn auf die Code-Schaltfläche in der Symbolleiste geklickt wird.
    doc save-use-vba-macros-in-all-workbooks 11
  2. Sie können auch direkt drücken Alt + F11 Um das Feld für die Codeoperation zu öffnen, suchen Sie den Code und drücken Sie F5 zu rennen.

Sonstige Operationen (Artikel)

Ein VBA-Code zum Auflisten aller Add-Ins in Excel
In Excel können Sie einige Add-Ins hinzufügen oder einfügen, um besser mit Daten umgehen zu können. Wie wir wissen, können wir im Fenster "Optionen" alle Add-Ins anzeigen. Gibt es jedoch eine Möglichkeit, alle Add-Ins in einem Blatt aufzulisten? In diesem Lernprogramm wird nun ein VBA-Code zum Auflisten aller Add-Ins in Excel bereitgestellt.

Wie wird ein VBA-Makro ausgeführt, wenn eine Arbeitsmappe geöffnet oder geschlossen wird?
In diesem Artikel erkläre ich Ihnen, wie Sie den VBA-Code ausführen, während Sie die Arbeitsmappe jedes Mal öffnen oder schließen.

Wie schützt / sperrt man VBA-Code in Excel?
So wie Sie Arbeitsmappen und Arbeitsblätter mit einem Kennwort schützen können, können Sie auch ein Kennwort zum Schutz der Makros in Excel festlegen.

Wie verwende ich die Zeitverzögerung nach dem Ausführen eines VBA-Makros in Excel?
In einigen Fällen müssen Sie möglicherweise eine Timer-Verzögerung festlegen, um ein VBA-Makro in Excel auszulösen. Wenn Sie beispielsweise auf klicken, um ein bestimmtes Makro auszuführen, wird es nach 10 Sekunden wirksam. Dieser Artikel zeigt Ihnen eine Methode, um dies zu erreichen.

 


  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen und Speichern von Daten; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen und Summe / Durchschnitt... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Lieblingsformeln und schnell einfügen, Bereiche, Diagramme und Bilder; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Pivot-Tabellengruppierung nach Wochennummer, Wochentag und mehr ... Entsperrte, gesperrte Zellen anzeigen durch verschiedene Farben; Markieren Sie Zellen mit Formel / Name...
kte tab 201905
  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten

 

 

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