Salt la conținutul principal

Cum să salvați și să utilizați macrocomenzile VBA în toate registrele de lucru din Excel?

În unele cazuri, poate fi necesar să utilizați o macrocomandă VBA de mai multe ori în viitor. este posibil să salvați cumva modulul VBA în orice document nou deci va fi disponibil în toate registrele de lucru? Raspunsul este da. În acest tutorial, vă vom prezenta o modalitate ușoară de a vă îndeplini obiectivul.
doc save-use-vba-macro-in-all-workbooks 1

Salvați și utilizați codul VBA în toate registrele de lucru


Salvați și utilizați codul VBA în toate registrele de lucru

De exemplu, doriți să utilizați codul VBA pentru convertiți numerele în cuvinte în limba engleză și salvați modulul VBA în toate registrele de lucru în cazul în care doriți să utilizați codul VBA în viitor. Vă rugăm să faceți după cum urmează.

1. apasă pe Alt + F11 tastele în Excel și deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module și lipiți următoarea macrocomandă în fereastra Modulului.

Cod VBA: convertiți numere în cuvinte

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. Faceți clic pe Economisiți pictograma din colțul din stânga sus al panglicii sau dați clic Ctrl + S pentru a deschide Salvare ca fereastră.doc save-use-vba-macro-in-all-workbooks 2

4. În Salvare ca fereastra, introduceți numele registrului de lucru în Nume de fișier cutie. Și selectați Add-in Excel (*.xlam) opțiune în Salvați ca tip lista verticală.
doc save-use-vba-macro-in-all-workbooks 3

5. Apoi faceți clic pe Economisiți butonul pentru a salva registrul de lucru cu codul VBA ca un Add-in Excel.
doc save-use-vba-macro-in-all-workbooks 4

6. Înapoi la Excel, închideți registrul de lucru gol care a fost salvat ca program de completare Excel.

7. Deschideți un nou registru de lucru cu datele necesare pentru a fi convertite. Introduceți formula = NumberstoWords (A2) în celula B2. The #NAME? valoarea de eroare va fi returnată deoarece codul VBA nu a fost încă aplicat în toate registrele de lucru.
doc save-use-vba-macro-in-all-workbooks 5

8. Du-te la Dezvoltator fila, faceți clic pe Complementele Excel în Add-in-uri grup.
doc save-use-vba-macro-in-all-workbooks 6

9. Adauga la apare fereastra de dialog. Apasă pe Naviga butonul.
doc save-use-vba-macro-in-all-workbooks 7

10. Alegeți programul de completare pe care tocmai l-ați salvat, apoi faceți clic pe OK butonul.
doc save-use-vba-macro-in-all-workbooks 8

11. Apoi Add-in Convertiți numărul în cuvinte personalizat este inserat și pornit. Apasă pe OK pentru a termina setarea.
doc save-use-vba-macro-in-all-workbooks 9

12. Acum, când introduceți formula = NumberstoWords (A2) în celula B2 și apăsați tasta Intrați cheie, vor fi returnate cuvintele în engleză corespunzătoare. Trageți în jos mânerul de completare automată pentru a obține toate rezultatele.
doc save-use-vba-macro-in-all-workbooks 10

notițe:

Dacă trebuie să rulați codul manual, nu există nicio modalitate de a-l găsi din pașii de mai sus. Vă rog să nu vă faceți griji. Sunt doua feluri pentru a rula codul.

  1. Puteți adăuga cod la Bara de instrumente rapidă și rulați codul de fiecare dată când se face clic pe butonul codului din bara de instrumente.
    doc save-use-vba-macro-in-all-workbooks 11
  2. De asemenea, puteți apăsa direct Alt + F11 pentru a deschide caseta de operare a codului, găsiți codul și apăsați F5 a alerga.

Alte operațiuni (articole)

Un cod VBA pentru a enumera toate adăugările în Excel
În Excel, puteți adăuga sau insera unele suplimente pentru a trata mai bine datele. După cum știm, putem merge la fereastra Opțiuni pentru a vizualiza toate adăugările, dar există vreo modalitate de a lista toate adăugările într-o foaie? Acum, în acest tutorial, oferă un cod VBA pentru listarea tuturor completărilor în Excel.

Cum să rulați macro-ul VBA când deschideți sau închideți registrul de lucru?
În acest articol, vă voi spune cum să rulați codul VBA în timp ce deschideți sau închideți registrul de lucru de fiecare dată.

Cum se protejează/blochează codul VBA în Excel?
La fel cum puteți folosi parola pentru a proteja registrele de lucru și foile de lucru, puteți seta și o parolă pentru protejarea macrocomenzilor în Excel.

Cum să utilizați întârzierea după rularea unei macrocomenzi VBA în Excel?
În unele cazuri, poate fi necesar să faceți o întârziere a temporizatorului pentru declanșarea unei macro VBA în Excel. De exemplu, când faceți clic pentru a rula o macro specificată, aceasta va intra în vigoare după 10 secunde. Acest articol vă va arăta o metodă de realizare.

 


  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane și păstrarea datelor; Conținut de celule divizate; Combinați rânduri duplicate și sumă / medie... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Formule favorite și inserare rapidă, Gama, Diagrame și Imagini; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Gruparea tabelului pivot după numărul săptămânii, ziua săptămânii și multe altele ... Afișați celulele deblocate, blocate prin diferite culori; Evidențiați celulele care au formulă / nume...
fila kte 201905
  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul 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