Hoppa till huvudinnehåll
 

Hur sparar och använder du dina VBA-makron i alla arbetsböcker i Excel?

Författare: Zhoumandy Senast ändrad: 2022-07-25

I vissa fall kan du behöva använda ett VBA-makro flera gånger i framtiden. Är det möjligt att spara på något sätt VBA-modulen till ett nytt dokument så det kommer att finnas i alla arbetsböcker? Svaret är ja. I den här handledningen kommer vi att introducera ett enkelt sätt att uppnå ditt mål.
doc spara-använd-vba-makron-i-alla-arbetsböcker 1

Spara och använd VBA-koden i alla arbetsböcker


Spara och använd VBA-koden i alla arbetsböcker

Till exempel vill du använda VBA-koden för att konvertera siffror till engelska ord och spara VBA-modulen i alla arbetsböcker om du vill använda VBA-koden i framtiden. Vänligen gör enligt följande.

1. tryck på Alt + F11 nycklar i Excel, och det öppnar Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulerna och klistra in följande makro i modulfönstret.

VBA-kod: Konvertera siffror till ord

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. Klicka på Save ikonen i det övre vänstra hörnet av menyfliksområdet eller klicka Ctrl + S att öppna Spara som fönster.doc spara-använd-vba-makron-i-alla-arbetsböcker 2

4. I Spara som fönstret, ange arbetsbokens namn i Filnamn låda. Och välj Excel-tillägg (*.xlam) alternativet i Spara som listrutan.
doc spara-använd-vba-makron-i-alla-arbetsböcker 3

5. Klicka sedan på Save knappen för att spara arbetsboken med VBA-kod som en Excel-tillägg.
doc spara-använd-vba-makron-i-alla-arbetsböcker 4

6. Tillbaka till excel, stäng den tomma arbetsboken som har sparats som ett Excel-tillägg.

7. Öppna en ny arbetsbok med data som behöver konverteras. Mata in formeln = Antal till ord (A2) i cell B2. De # NAMN? felvärde kommer att returneras eftersom VBA-kod inte har använts i alla arbetsböcker ännu.
doc spara-använd-vba-makron-i-alla-arbetsböcker 5

8. Gå till Utvecklare fliken, klicka Excel-tillägg i Tillägg grupp.
doc spara-använd-vba-makron-i-alla-arbetsböcker 6

9. Den Lägga in dialogrutan dyker upp. Klicka på Bläddra knapp.
doc spara-använd-vba-makron-i-alla-arbetsböcker 7

10. Välj det tillägg du just sparade och klicka sedan på OK knapp.
doc spara-använd-vba-makron-i-alla-arbetsböcker 8

11. Sedan Konvertera tal till ord-tillägg du anpassade infogas och slås på. Klicka på OK för att avsluta inställningen.
doc spara-använd-vba-makron-i-alla-arbetsböcker 9

12. Nu när du matar in formeln = Antal till ord (A2) i cell B2 och tryck på ange tangent, kommer motsvarande engelska ord att returneras. Dra autofyllhandtaget nedåt för att få alla resultat.
doc spara-använd-vba-makron-i-alla-arbetsböcker 10

Anmärkningar:

Om du behöver köra koden manuellt, det finns inget sätt att hitta det från stegen ovan. Snälla oroa dig inte. Det finns två sätt för att köra koden.

  1. Du kan lägga till kod till Snabbverktygsfält och kör koden varje gång du klickar på kodknappen i verktygsfältet.
    doc spara-använd-vba-makron-i-alla-arbetsböcker 11
  2. Du kan också trycka direkt Alt + F11 för att öppna kodhanteringsrutan, leta reda på koden och tryck på F5 att springa.

Annan verksamhet (artiklar)

En VBA-kod för att lista alla tillägg i Excel
I Excel kan du lägga till eller infoga några tillägg för bättre hantering av data. Som vi vet kan vi gå till alternativfönstret för att se alla tillägg, men finns det något sätt att lista alla tillägg i ett ark? Nu, i denna handledning, ger den en VBA-kod för att lista alla tillägg i Excel.

Hur man kör VBA-makro när man öppnar eller stänger arbetsboken?
I den här artikeln kommer jag att berätta hur du kör VBA-koden medan du öppnar eller stänger arbetsboken varje gång.

Hur man skyddar / låser VBA-kod i Excel?
Precis som du kan använda lösenord för att skydda arbetsböcker och kalkylblad, kan du också ställa in ett lösenord för att skydda makron i Excel.

Hur man använder tidsfördröjning efter att ha kört ett VBA-makro i Excel?
I vissa fall kan du behöva göra en tidsfördröjning för att utlösa en VBA-makro i Excel. När du till exempel klickar för att köra ett angivet makro, träder det i kraft efter tio sekunder. Den här artikeln visar en metod för att uppnå det.

 


  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner och förvaring av data; Delat cellinnehåll; Kombinera duplicerade rader och summa / genomsnitt... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Favorit och sätt snabbt in formler, Intervall, diagram och bilder; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Gruppering av pivottabell efter veckonummer, veckodagen och mer ... Visa olåsta, låsta celler av olika färger; Markera celler som har formel / namn...
kte-flik 201905
  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten