Mokslinio pavadinimo formatavimo tobulinimas naudojant VBA makrokomandas
VBA makrokomandų naudojimas moksliniams pavadinimams „Word“ dokumentuose formatuoti yra galingas įrankis, ypač renkant duomenis iš „Excel“. Šiame straipsnyje aptariama konkreti VBA makrokomanda, kuri puikiai paryškina, kursyvu ir keičia mokslinių pavadinimų šriftą, tačiau sunkiai atnaujina tekstą į sakinio didžiąsias ir mažąsias raides.
Nepaisant jos veiksmingumo kitais formatavimo aspektais, makrokomandai nepavyksta konvertuoti mokslinių pavadinimų į norimą sakinio didžiąją ir mažąją raidę. Šiame straipsnyje nagrinėjama problema ir galimi sprendimai, siekiant užtikrinti, kad visi moksliniai pavadinimai atitiktų tinkamus formatavimo standartus.
komandą | apibūdinimas |
---|---|
Application.FileDialog(msoFileDialogFilePicker) | Atidaromas failo dialogo langas, kuriame galima pasirinkti failą, šiuo atveju „Excel“ darbaknygę. |
GetObject("", "Excel.Application") | Gauna esamą „Excel“ egzempliorių, jei jis jau veikia. |
CreateObject("Excel.Application") | Sukuria naują „Excel“ egzempliorių, jei jis dar neveikia. |
xlbook.Workbooks.Open(strSource) | Atidaro pasirinktą „Excel“ darbaknygę. |
xlsheet.Range("A1").CurrentRegion.Value | Gauna dabartinio regiono reikšmę pradedant nuo langelio A1 Excel lape. |
Selection.HomeKey wdStory | Perkelia pasirinkimą į dokumento pradžią. |
Selection.Find.ClearFormatting | Išvalomi visi ankstesni formatavimo nustatymai ieškant. |
StrConv(rng.Text, vbProperCase) | Konvertuoja diapazono tekstą į tinkamas raides (pavadinimo didžiąsias ir mažąsias raides). |
VBA makrokomandos, skirtos moksliniam vardų formatavimui, supratimas
Pateikta VBA makrokomanda skirta automatizuoti mokslinių pavadinimų formatavimą Word dokumente naudojant duomenis iš Excel lapo. Scenarijus pradedamas atidarius failo dialogo langą (Application.FileDialog(msoFileDialogFilePicker)), kad vartotojas galėtų pasirinkti „Excel“ darbaknygę, kurioje yra formatuotini moksliniai pavadinimai. Tada jis bando prisijungti prie esamo „Excel“ egzemplioriaus naudodamas GetObject("", "Excel.Application") arba sukuria naują egzempliorių, jei „Excel“ dar neveikia (CreateObject("Excel.Application")). Kai darbaknygė atidaroma, makrokomanda nuskaito duomenis iš nurodyto diapazono (xlsheet.Range("A1").CurrentRegion.Value) ir saugo jį masyve tolesniam apdorojimui.
Kiekvienam moksliniam masyvo pavadinimui makrokomandoje naudojama Selection.Find objektą, norėdami ieškoti termino Word dokumente. Kai randama atitiktis, scenarijus taiko įvairias teksto formatavimo parinktis, pvz., kursyvą (rng.Font.Italic = True), paryškintas (rng.Font.Bold = True), keičiant šrifto spalvą (rng.Font.Color = RGB(200, 187, 0)) ir šrifto tipą nustatykite į Times New Roman (rng.Font.Name = "Times New Roman"). Pagrindinis šios makrokomandos aspektas yra bandymas pakeisti tekstą į sakinio didžiąsias ir mažąsias raides rng.Case = wdTitleSentence, kuri, deja, neveikia taip, kaip numatyta. Scenarijus taip pat apima alternatyvų metodą rankiniu būdu konvertuojant tekstą į tinkamą didžiąją ir mažąją raidę StrConv(rng.Text, vbProperCase).
VBA makrokomanda, skirta atnaujinti mokslinių pavadinimų formatavimą programoje „Word“.
„Visual Basic for Applications“ (VBA), skirta „Word“ ir „Excel“.
Sub format_scientific_names()
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Dim myarray As Variant
Dim FD As FileDialog
Dim strSource As String
Dim i As Long, lognum As Long
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Title = "Select the workbook that contains the terms to be italicized"
.Filters.Clear
.Filters.Add "Excel Workbooks", "*.xlsx"
.AllowMultiSelect = False
If .Show = -1 Then
strSource = .SelectedItems(1)
Else
MsgBox "You did not select the workbook that contains the data"
Exit Sub
End If
End With
On Error Resume Next
Set xlapp = GetObject("", "Excel.Application")
If Err Then
bstartApp = True
Set xlapp = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set xlbook = xlapp.Workbooks.Open(strSource)
Set xlsheet = xlbook.Worksheets(1)
myarray = xlsheet.Range("A1").CurrentRegion.Value
If bstartApp = True Then xlapp.Quit
Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing
For i = LBound(myarray) To UBound(myarray)
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
Set rng = Selection.Range
Selection.Collapse wdCollapseEnd
rng.Font.Italic = True
rng.Font.Bold = True
rng.Font.Color = RGB(200, 187, 0)
rng.Font.Name = "Times New Roman"
rng.Text = StrConv(rng.Text, vbProperCase)
Loop
End With
Next i
End Sub
VBA scenarijus, skirtas paveldėti atvejį iš „Excel“ duomenų
VBA, skirta Excel ir Word integracijai
Sub format_scientific_names_inherit_case()
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Dim myarray As Variant
Dim FD As FileDialog
Dim strSource As String
Dim i As Long, lognum As Long
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Title = "Select the workbook that contains the terms to be italicized"
.Filters.Clear
.Filters.Add "Excel Workbooks", "*.xlsx"
.AllowMultiSelect = False
If .Show = -1 Then
strSource = .SelectedItems(1)
Else
MsgBox "You did not select the workbook that contains the data"
Exit Sub
End If
End With
On Error Resume Next
Set xlapp = GetObject("", "Excel.Application")
If Err Then
bstartApp = True
Set xlapp = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set xlbook = xlapp.Workbooks.Open(strSource)
Set xlsheet = xlbook.Worksheets(1)
myarray = xlsheet.Range("A1").CurrentRegion.Value
If bstartApp = True Then xlapp.Quit
Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing
For i = LBound(myarray) To UBound(myarray)
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
Set rng = Selection.Range
Selection.Collapse wdCollapseEnd
rng.Text = myarray(i, 1)
rng.Font.Italic = True
rng.Font.Bold = True
rng.Font.Color = RGB(200, 187, 0)
rng.Font.Name = "Times New Roman"
Loop
End With
Next i
End Sub
Išplėstinė VBA metodika teksto formatavimui Word
Dirbant su VBA makrokomandomis norint formatuoti tekstą Word dokumentuose, reikia atsižvelgti į daugybę aspektų, ne tik paprastas formatavimo komandas. Vienas iš esminių elementų yra užtikrinti, kad teksto didžiosios ir mažosios raidės būtų tinkamai tvarkomos, ypač kai kalbama apie konkrečią nomenklatūrą, pvz., mokslinius pavadinimus. Makrokomandos, integruojančios duomenis iš „Excel“ ir taikančios įvairias „Word“ formatavimo parinktis, gali žymiai supaprastinti dokumentų rengimą. Tačiau nustatyti teisingą teksto didžiąją ir mažąją raidę, pvz., sakinio didžiąją raidę, gali būti sudėtinga. Ši problema dažnai kyla, nes numatytosios VBA funkcijos keičia didžiąsias ir mažąsias raides, pvz wdUpperCase ir wdLowerCase, ne visada atitinka niuansingesnio teksto didžiųjų ir mažųjų raidžių koregavimo reikalavimus.
Kitas būdas apima pasirinktinių funkcijų naudojimą arba „Excel“ galimybių panaudojimą, kad būtų galima valdyti teksto didžiąsias ir mažąsias raides prieš perkeliant duomenis į „Word“. Pavyzdžiui, prieš paleisdami Word makrokomandą užtikrinę, kad moksliniai pavadinimai būtų tinkamai suformatuoti programoje Excel, galite sutaupyti laiko ir sumažinti klaidų. VBA StrConv funkcija, kuri konvertuoja eilutes į įvairius atvejus, gali būti naudinga, tačiau ją reikia atidžiai įgyvendinti. Be to, supratimas, kaip manipuliuoti Selection.Find efektyvus objektas yra būtinas norint tiksliai rasti ir pakeisti tekstą. Įtraukus klaidų tvarkymą ir užtikrinus, kad makrokomandos būtų galima apdoroti įvairius teksto scenarijus, automatizavimas bus patikimesnis ir patikimesnis.
Dažni klausimai apie VBA makrokomandas, skirtas teksto formatavimui
- Kaip atidaryti failo dialogo langą VBA?
- Naudokite Application.FileDialog(msoFileDialogFilePicker) Norėdami atidaryti failo dialogo langą ir leisti vartotojams pasirinkti failą.
- Kaip gauti „Excel“ egzempliorių VBA?
- Tu gali naudoti GetObject("", "Excel.Application") gauti esamą Excel egzempliorių arba CreateObject("Excel.Application") sukurti naują.
- Kaip atidaryti „Excel“ darbaknygę VBA?
- Naudokite xlbook.Workbooks.Open("filePath") norėdami atidaryti „Excel“ darbaknygę iš nurodyto failo kelio.
- Koks yra geriausias būdas nuskaityti įvairius duomenis iš „Excel“ naudojant VBA?
- Naudojant xlsheet.Range("A1").CurrentRegion.Value nuskaito visą esamą lapo sritį, pradedant nuo langelio A1, į masyvą.
- Kaip galiu perkelti žymeklį į Word dokumento pradžią VBA?
- Komanda Selection.HomeKey wdStory perkelia pasirinkimą į dokumento pradžią.
- Ką Selection.Find.ClearFormatting veikia VBA?
- Jis išvalo visus ankstesnius formatavimo nustatymus, taikomus paieškos operacijai, užtikrinant naują paiešką.
- Kaip VBA pakeisti tekstą į tinkamas didžiąsias ir mažąsias raides?
- Naudoti StrConv(text, vbProperCase) funkcija konvertuoti tekstą į tinkamas raides.
- Kaip VBA tekstui pritaikyti kelias formatavimo parinktis?
- Galite taikyti skirtingą formatavimą, pvz., kursyvą, pusjuodį ir šrifto spalvą rng.Font.Italic = True, rng.Font.Bold = True, ir rng.Font.Color = RGB(200, 187, 0).
Išvada ir tolesni žingsniai
Apibendrinant galima pasakyti, kad kuriant VBA makrokomandą, skirtą moksliniams pavadinimams Word dokumentuose formatuoti, reikia atlikti kelis veiksmus, įskaitant duomenų gavimą iš „Excel“ ir kelių formatavimo parinkčių pritaikymą. Nors makrokomandos gali veiksmingai pakeisti šriftų stilius ir spalvas, sakinio didžiųjų ir mažųjų raidžių formatavimas išlieka iššūkiu. Būsimi patobulinimai gali apimti pasirinktines funkcijas arba išankstinį duomenų formatavimą programoje „Excel“, kad būtų užtikrintas nuoseklumas. Tinkamas didžiųjų ir mažųjų raidžių tvarkymas padidins mokslinių dokumentų skaitomumą ir profesionalumą.