Note: The other languages of the website are Google-translated. Back to English

Kako zagnati makro hkrati v več datotekah delovnih zvezkov?

V tem članku bom govoril o tem, kako zagnati makro v več datotekah delovnega zvezka hkrati, ne da bi jih odprli. Naslednja metoda vam lahko pomaga pri reševanju te naloge v Excelu.

Zaženite makro istočasno v več delovnih zvezkih s kodo VBA


Zaženite makro istočasno v več delovnih zvezkih s kodo VBA

Če želite zagnati makro v več delovnih zvezkih, ne da bi jih odprli, uporabite naslednjo kodo VBA:

1. Držite tipko ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin v mapo prilepite naslednji makro Moduli Okno.

Koda VBA: zaženite isti makro na več delovnih zvezkih hkrati:

Sub LoopThroughFiles()
    Dim xFd As FileDialog
    Dim xFdItem As Variant
    Dim xFileName As String
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    If xFd.Show = -1 Then
        xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
        xFileName = Dir(xFdItem & "*.xls*")
        Do While xFileName <> ""
            With Workbooks.Open(xFdItem & xFileName)
                'your code here
            End With
            xFileName = Dir
        Loop
    End If
End Sub

Opombe: V zgornjo kodo kopirajte in prilepite svojo kodo brez spodaj naslov in End Sub noga med Z delovnimi zvezki.Open (xFdItem & xFileName) in Končaj s skripte. Oglejte si posnetek zaslona:

doc zaženi makro več datotek 1

3. Nato pritisnite F5 tipko za izvajanje te kode in a Brskanje okno se prikaže, izberite mapo, ki vsebuje delovne zvezke, za katere želite, da vsi uporabljajo ta makro, glejte posnetek zaslona:

doc zaženi makro več datotek 2

4. In nato kliknite OK gumb, se bo želeni makro izvedel naenkrat iz enega delovnega zvezka v drugega.

 


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize

 

Komentarji (43)
Ocenjeno 4.5 iz 5 · 1 ocene
Ta komentar je moderator na spletnem mestu minimiziral
Zelo uporaben makro in deluje dobro, vendar bi rad lahko izbral, v katerih datotekah iz te mape želim, da se zažene makro? Datoteke se ne ustvarijo samodejno v ločeni mapi in moram zagnati različne makre za vsak niz datotek iz te mape in jih nato premakniti nazaj v prvotno mapo.
Ta komentar je moderator na spletnem mestu minimiziral
Sledil sem navodilom, vendar sem dobil napako pri prevajanju "Loop with Do". kaj pogrešam? Moja koda makra je zelo preprosta, samo spremenite velikost pisave določenih vrstic. Deluje sam. Evo, kar imam... prosim pomagajte

Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Naredi, medtem ko xFileName <> ""
Z delovnimi zvezki.Open (xFdItem & xFileName)
'vaša koda tukaj
Vrstice("2:8").Izberite
Z Selection.Font
.Name = "Arial"
.Velikost = 12
.Prečrtano = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Senca = False
.Podčrtaj = xlPodčrtaniStyleNone
.Barva = -11518420
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
Končaj s
xFileName = Dir
Zanka
Konec Če
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, yarto,
Zgrešili ste skript "Končaj z" na koncu kode, pravilen bi moral biti ta:
Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Naredi, medtem ko xFileName <> ""
Z delovnimi zvezki.Open (xFdItem & xFileName)
'vaša koda tukaj
Vrstice("2:8").Izberite
Z Selection.Font
.Name = "Arial"
.Velikost = 16
.Prečrtano = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Senca = False
.Podčrtaj = xlPodčrtaniStyleNone
.Barva = -11518420
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
Končaj s
Končaj s
xFileName = Dir
Zanka
Konec Če
End Sub

Prosim, poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Zelo uporaben makro in deluje odlično, vendar bi rad lahko izbral, v katerih datotekah iz te mape želim, da se zažene makro? Na primer, imam 4 datoteke v mapi z drugimi datotekami excel in želim, da se izvaja samo na teh 4 določenih datotekah. Kako lahko prilagodim vaš makro, da lahko izberem te 4 datoteke iz te mape?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Joel,
Če želite sprožiti isto kodo v določenih delovnih zvezkih, uporabite spodnjo kodo:

Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Dim xFB kot niz
Z Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = Res
.Filtri.Počisti
.Filtri.Dodaj "excel", "*.xls*"
.Pokaži
Če je .SelectedItems.Count < 1, potem zapusti pod
Za lngCount = 1 Za .SelectedItems.Count
xFileName = .SelectedItems(lngCount)
Če xFileName <> "" Potem
Z Workbooks.Open(ime datoteke:=xFileName)
'vaša koda
Končaj s
Konec Če
Naslednji lngCount
Končaj s
End Sub

Prosim, poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
hvala, res je bilo v pomoč
Ta komentar je moderator na spletnem mestu minimiziral
Živjo!

Poskušam vstaviti svojo kodo v vašo in ko zaženem makro, mi izpiše naslednje sporočilo: Napaka med izvajanjem '429': ActiveX ne more ustvariti predmeta. Prosim za nasvet, kako ga je mogoče popraviti. Hvala vam!

moja koda:

Nastavite RInput = Obseg("A2:A21")
Nastavite ROutput = Obseg("D2:D22")

Dim A() Kot varianta
ReDim A(1 do RInput.Rows.Count, 0)
A = RVhodna vrednost2

Nastavi d = CreateObject("Scripting.Dictionary")

Za i = 1 do UBound(A)
Če d.Obstoji(A(i, 1)) Potem
d(A(i, 1)) = d(A(i, 1)) + 1
Else
d. Dodajte A(i, 1), 1
Konec Če
Naslednji
Za i = 1 do UBound(A)
A(i, 1) = d(A(i, 1))
Naslednji

ROizhod = A
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, najprej hvala za ta makro, točno to sem iskal. Vendar imam eno težavo, ali obstaja način, da zaprete in shranite vsako okno, ko se zaključi. Imam veliko količino datotek in zmanjkuje mi RAM-a, preden je izvedba končana.
Ta komentar je moderator na spletnem mestu minimiziral
Da, samo dodajte spodnjo naslednjo kodo, če želite shraniti datoteko z istim imenom:

'Shranjevanje delovnega zvezka
ActiveWorkbook.Save
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Caitlin,
Morda vam lahko spodnja koda pomaga, vsakič, ko zaženete določeno kodo, se prikaže okno s pozivom za shranjevanje datoteke, ki vas opomni, da shranite delovni zvezek.

Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Dim xWB kot delovni zvezek
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
On Error Resume Next
Naredi, medtem ko xFileName <> ""
Nastavi xWB = Workbooks.Open(xFdItem & xFileName)
Z xWB
'vaša koda tukaj
Končaj s
xWB.Zapri
xFileName = Dir
Zanka
Konec Če
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Živjo!

Poskušam vstaviti svojo kodo v vašo in ko zaženem makro, mi izpiše naslednje sporočilo: Napaka med izvajanjem '429': ActiveX ne more ustvariti predmeta. Prosim za nasvet, kako ga je mogoče popraviti. Hvala vam!

moja koda:

Nastavite RInput = Obseg("A2:A21")
Nastavite ROutput = Obseg("D2:D22")

Dim A() Kot varianta
ReDim A(1 do RInput.Rows.Count, 0)
A = RVhodna vrednost2

Nastavi d = CreateObject("Scripting.Dictionary")

Za i = 1 do UBound(A)
Če d.Obstoji(A(i, 1)) Potem
d(A(i, 1)) = d(A(i, 1)) + 1
Else
d. Dodajte A(i, 1), 1
Konec Če
Naslednji
Za i = 1 do UBound(A)
A(i, 1) = d(A(i, 1))
Naslednji

ROizhod = A
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,

Ta makro sem uspešno uporabil za formatiranje datotek NBA za 30 ekip, vsaka s svojo knjigo. Včeraj sem prejel sporočilo o napaki, da modula (makra) ni mogoče dokončati, izbrisati ali urediti (shraniti). Poškodoval je moj osebni delovni zvezek z makrami in mi postal Excel praktično neuporaben. Aplikacijo se zruši vsakič, ko poskušam dostopati do makra iz katere koli datoteke. Podpora za Excel in podpora za Windows stvari nista mogli popraviti. Lahko pomagate?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, ali obstaja način, da določim cilj datoteke v samem skriptu. Želim preskočiti postopek 3, kjer moramo brskati po določeni mapi.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, hvala za to kodo. mi lahko prosim poveš, kako lahko dobim rezultat svojega makra, za katerega sem odprl vse delovne zvezke na enem listu (rezultat vsakega delovnega zvezka v vrsti)? in ali obstaja način za dodajanje imena vsakega delovnega zvezka v vrstico s podatki iz prejšnjega koraka?
Ta komentar je moderator na spletnem mestu minimiziral
Hi

Dobil sem napako v času izvajanja 1004: sintaksa ni pravilna, ko sem zagnal naslednjo kodo, ki je Extend Office VBA, da "Zaženi makro istočasno v več delovnih zvezkih s kodo VBA" z Extend Office VBA "Izbriši vse imenovane obsege s kodo VBA" v vstavite svojo kodno režo:

Sub LoopThroughFiles()

Dim xFd kot FileDialog

Dim xFdItem kot različica

Dim xFileName kot niz

Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)

Če je xFd.Show = -1 Potem

xFdItem = xFd.SelectedItems(1) & Application.PathSeparator

xFileName = Dir(xFdItem & "*.xls*")

Naredi, medtem ko xFileName <> ""

Z delovnimi zvezki.Open (xFdItem & xFileName)

' Sub DeleteNames()

'Posodobitev 20140314

Dim xName kot ime

Za vsako xName v Application.ActiveWorkbook.Names

xIme.Izbriši

Naslednji


Končaj s

xFileName = Dir

Zanka

Konec Če

End Sub

Poskušam zagnati makro, ki izbriše imenovane obsege v osmih delovnih zvezkih, ki so v isti mapi.

BTW, to je prvič, da sem uporabil nekaj iz Extend Officea in ne deluje. Ta spletna stran mi je bila izredno v pomoč.

Predlogi/komentarji bi bili zelo hvaležni.

aldc
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, aldc,
Vaša koda dobro deluje v mojem delovnem zvezku, katero različico Excela uporabljate?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, ta koda je tako dobra in uporabna. Veliko ga uporabljam!

Danes v moji organizaciji zdaj uporabljamo SharePoint za shranjevanje naših datotek. Ali obstaja način, da ta koda deluje v vseh datotekah v mapi Sharepoint?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, hvala za to kodo.
Ali obstaja način za zanko tudi po podmapah? Recimo, da imam eno mapo in znotraj mape še deset map, od katerih vsaka vsebuje excel datoteko.

Ali obstaja način, da samo izberete primarno mapo, tako da se koda izvaja skozi vse njene podmape?

Hvala.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Darko, če želite zagnati kodo iz mape s podmapami, uporabite naslednjo kodo: Sub LoopThroughFiles_Subfolders(xStrPath kot niz)
Zatemni xSFolderName
Dim xFileName
Dim xArrSFPath() kot niz
Dim xI kot celo število
Če je xStrPath = "" Nato zapustite Sub
xFileName = Dir(xStrPath & "*.xls*")
Naredi, medtem ko xFileName <> ""
Z Workbooks.Open(xStrPath & xFileName)
'vaša koda tukaj
Končaj s
xFileName = Dir
Zanka
xSFolderName = Dir(xStrPath, vbDirectory)
xI = 0
Predim xArrSFPath(0)
Naredi Medtem ko xSFolderName <> ""
Če xSFolderName <> "." In xSFolderName <> ".." Nato
Če (GetAttr(xStrPath & xSFolderName) In vbDirectory) = vbDirectory Potem
xI = xI + 1
ReDim Ohrani xArrSFPath(xI)
xArrSFPath(xI - 1) = xStrPath & xSFolderName & "\"
Konec Če
Konec Če
xSFolderName = Dir
Zanka
Če je UBound(xArrSFPath) > 0 Potem
Za xI = 0 do UBound(xArrSFPath)
LoopThroughFiles_Podmape (xArrSFPath(xI))
Naslednji xI
Konec Če
End Sub
Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
LoopThroughFiles_Subfolders (xFdItem)
Konec Če
Konec SubProsim, poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Ali je poleg zgornje kode mogoče odpreti Excelove datoteke v kronološkem vrstnem redu, ki sem ga želel?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, najlepša hvala za makro, s katerim je res priročno delati. Zanimalo me je samo, ali imamo način za osvežitev mape v onedrive z makrom. Če je odgovor pritrdilen, mi lahko prosim sporočite, kaj lahko storim tukaj za osvežitev datotek v onedrive z uporabo makra skripta?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, najlepša hvala za ta skript, zame deluje zelo dobro, vendar imam posebne potrebe: Ali obstaja način, da spremenim skript, da uporabim svojo kodo s pogoji za ime datoteke IN v podmapah?
Pojasnim: sem učitelj in ustvaril sem rešitev v Excelu, da shranim rezultate učencev in omogočim učiteljem, da se z njimi posvetujejo. Za to imam datoteko za posamezen šolski predmet in eno za odgovorni razred, vse v mapi na razred.
Ko torej najdem napako ali optimizacijo, moram prijaviti spremembe v vseh datotekah v vseh podmapah.
Ker pa vse datoteke niso enake (različna organizacija predmetov), ​​bi rad uporabil svojo kodo par primer za vse datoteke z imenom "maths class" v vseh podmapah ali nasprotno, da bi svojo kodo uporabil za vse datoteke v podmapah razen vseh datotek z imenom "xyz". Hvala !Fabrice
Ta komentar je moderator na spletnem mestu minimiziral
Vaša podana koda ne deluje z naslednjim VBA, ali lahko prosim pomagateSub Bundle()

Dim vWS kot delovni list
Dim vA, vA2()
Dim vR As Long, vSum As Long, vC As Long
Dim vN As Long, vN2 As Long, vN3 As Long

Nastavite vWS = ActiveSheet
Z vWS
vR = .Cells(vrstice.Število, 4).Konec(xlUp).Vrstica
vSum = Application.Sum(.Range("D2:D" & vR))
ReDim Preserve vA2 (1 do vSum, 1 do 4)
vA = .Range("A2:D" & vR)
Za vN = 1 do vR - 1
Za vN2 = 1 do vA(vN, 4)
vC = vC + 1
Za vN3 = 1 do 4
vA2(vC, vN3) = vA(vN, vN3)
Naslednji vN3
Naslednji vN2
Naslednji vN
Končaj s
vC = 1
Za vN = 1 do vSum - 2
vA2(vN, 4) = vC
Če je vA2(vN + 1, 2) = vA2(vN, 2) Potem
vC = vC + 1
vA2(vN + 1, 4) = vC
Else
vA2(vN + 1, 4) = 1
vC = 1
Konec Če
Naslednji vN
Application.ScreenUpdating = Napačno
Listi.Dodaj
Z ActiveSheet
vWS.Range("A1:D1").Copy .Range("A1:D1")
.Celice(2, 1).Spremeni velikost(vSum, 4) = vA2
Končaj s
Application.ScreenUpdating = Res

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Želim zagnati ta VBA v več listov v mapi naenkrat, ali mi lahko pomagateSub Bundle()

Dim vWS kot delovni list
Dim vA, vA2()
Dim vR As Long, vSum As Long, vC As Long
Dim vN As Long, vN2 As Long, vN3 As Long

Nastavite vWS = ActiveSheet
Z vWS
vR = .Cells(vrstice.Število, 4).Konec(xlUp).Vrstica
vSum = Application.Sum(.Range("D2:D" & vR))
ReDim Preserve vA2 (1 do vSum, 1 do 4)
vA = .Range("A2:D" & vR)
Za vN = 1 do vR - 1
Za vN2 = 1 do vA(vN, 4)
vC = vC + 1
Za vN3 = 1 do 4
vA2(vC, vN3) = vA(vN, vN3)
Naslednji vN3
Naslednji vN2
Naslednji vN
Končaj s
vC = 1
Za vN = 1 do vSum - 2
vA2(vN, 4) = vC
Če je vA2(vN + 1, 2) = vA2(vN, 2) Potem
vC = vC + 1
vA2(vN + 1, 4) = vC
Else
vA2(vN + 1, 4) = 1
vC = 1
Konec Če
Naslednji vN
Application.ScreenUpdating = Napačno
Listi.Dodaj
Z ActiveSheet
vWS.Range("A1:D1").Copy .Range("A1:D1")
.Celice(2, 1).Spremeni velikost(vSum, 4) = vA2
Končaj s
Application.ScreenUpdating = Res

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Poskušal sem zagnati kodo, vendar se v vrstici "With Workbooks.Open(xFdItem & xFileName)" prikaže napaka "424: Object Required". Če pogledam globlje, se zdi, da se delovni zvezki excels, shranjeni v zanimivi mapi, ne prikažejo/obstajajo (ko se odpre okno s prikazom kode, če poskušam odpreti mapo in je ne izberem, je prazno). Kako to?
Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Naredi, medtem ko xFileName <> ""
Z delovnimi zvezki.Open (xFdItem & xFileName)
Sheets.Add After:=ActiveSheet
Listi("Sheet2").Izberite
Sheets("Sheet2").Name = "Master"
Listi("Master").Izberite
Listi("Master").Premakni prej:=Liste(1)
Končaj s
xFileName = Dir
Zanka
Konec Če
End Sub


Mi lahko prosim pomagate rešiti to težavo?
Ta komentar je moderator na spletnem mestu minimiziral
To je moje najljubše spletno mesto z najbolj jasnimi navodili (bolj kot kateri koli videoposnetek v YouTubu) in nanj se vedno znova vračam. Najlepša hvala za te vadnice - vi ste rešitelj žalostnega študenta.
Ta komentar je moderator na spletnem mestu minimiziral
Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Naredi, medtem ko xFileName <> ""
Z delovnimi zvezki.Open (xFdItem & xFileName)
' ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selection.Insert Shift:=xlToRight
ActiveCell.Izberi
Končaj s
xFileName = Dir
Zanka
Konec Če
End Sub, prosim za pomoč. BTW, moja razširitev Excelovih datotek je (.csv - "ločeno z vejico") . in imam 500 excel datotek v mapi s povprečnim številom vrstic v vsaki vrstici približno 500000 vrstic. Prosim za pomoč. V vsak delovni zvezek želim samo vstaviti stolpec
Ta komentar je moderator na spletnem mestu minimiziral
si kdaj dobil odgovor na svoje vprašanje? Enako poskušam narediti z več kot 3700 datotekami csv. Samo dodati moram 1 stolpec (A).
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, potrebujete in Carly, za rešitev vaše težave, da zaženete kodo za več datotek CSV, morate samo spremeniti razširitev datoteke .xls v .csv, kot je prikazano spodaj: Sub LoopThroughFiles()
Dim xFd kot FileDialog
Dim xFdItem kot različica
Dim xFileName kot niz
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
Če je xFd.Show = -1 Potem
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.csv*")
Naredi, medtem ko xFileName <> ""
Z delovnimi zvezki.Open (xFdItem & xFileName)
ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selection.Insert Shift:=xlToRight
ActiveCell.Izberi
Končaj s
xFileName = Dir
Zanka
Konec Če
Konec SubProsim, poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, ali je mogoče makro zagnati samo v listih različnih delovnih zvezkov z določenim imenom? hvala!!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Sara,
Žal ni dobre rešitve za problem, ki ste ga izpostavili.
Hvala!
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL