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

Come eseguire una macro contemporaneamente su più file della cartella di lavoro?

In questo articolo, parlerò di come eseguire una macro su più file della cartella di lavoro contemporaneamente senza aprirli. Il seguente metodo può aiutarti a risolvere questa attività in Excel.

Esegui una macro contemporaneamente su più cartelle di lavoro con codice VBA


Esegui una macro contemporaneamente su più cartelle di lavoro con codice VBA

Per eseguire una macro su più cartelle di lavoro senza aprirle, applica il seguente codice VBA:

1. Tieni premuto il ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla la seguente macro nel file Modulo Finestra.

Codice VBA: esegui la stessa macro su più cartelle di lavoro contemporaneamente:

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

Note:: Nel codice sopra, copia e incolla il tuo codice senza l'estensione Sub intestazione e End Sub piè di pagina tra il Con Workbooks.Open (xFdItem e xFileName) e Fine Con script. Vedi screenshot:

doc eseguire macro più file 1

3. Quindi premere F5 chiave per eseguire questo codice e un file Scopri la nostra gamma viene visualizzata la finestra, selezionare una cartella che contiene le cartelle di lavoro a cui si desidera applicare questa macro, vedere screenshot:

doc eseguire macro più file 2

4. Quindi fare clic su OK pulsante, la macro desiderata verrà eseguita contemporaneamente da una cartella di lavoro ad altre.

 


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab

 

Commenti (43)
Rinomato 4.5 su 5 · Valutazioni 1
Questo commento è stato fatto dal moderatore sul sito
Macro molto utile e funziona bene, ma vorrei poter selezionare su quali file da quella cartella voglio che venga eseguita la macro? I file non vengono generati automaticamente in una cartella separata e devo eseguire macro diverse su ciascun set di file da quella cartella, quindi spostarli nuovamente nella cartella iniziale.
Questo commento è stato fatto dal moderatore sul sito
Ho seguito le istruzioni ma ho ricevuto un errore di compilazione "Loop wihtout Do". Cosa mi sto perdendo? Il mio codice macro è molto semplice, basta cambiare la dimensione del carattere delle righe specificate. Funziona da solo. Ecco cosa ho... per favore aiutatemi

Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Fai mentre xFileName <> ""
Con Workbooks.Open (xFdItem e xFileName)
'il tuo codice qui
Righe ("2:8").Seleziona
Con Selezione.Font
.Nome = "Arial"
.Dimensione = 12
.Barrato = Falso
.Apice = Falso
.Pedice = Falso
.OutlineFont = Falso
.Ombra = Falso
.Underline = xlUnderlineStyleNone
.Colore = -11518420
.TintaE Ombra = 0
.ThemeFont = xlThemeFontNessuno
Fine Con
xNomeFile = Dir
Ciclo continuo
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao, yarto,
Hai perso lo script "Fine con" alla fine del tuo codice, quello corretto dovrebbe essere questo:
Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Fai mentre xFileName <> ""
Con Workbooks.Open (xFdItem e xFileName)
'il tuo codice qui
Righe ("2:8").Seleziona
Con Selezione.Font
.Nome = "Arial"
.Dimensione = 16
.Barrato = Falso
.Apice = Falso
.Pedice = Falso
.OutlineFont = Falso
.Ombra = Falso
.Underline = xlUnderlineStyleNone
.Colore = -11518420
.TintaE Ombra = 0
.ThemeFont = xlThemeFontNessuno
Fine Con
Fine Con
xNomeFile = Dir
Ciclo continuo
End If
End Sub

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Macro molto utile e funziona benissimo, ma vorrei essere in grado di selezionare su quali file da quella cartella voglio che venga eseguita la macro? Ad esempio, ho 4 file in una cartella con altri file Excel e voglio che venga eseguito solo su quei 4 file specifici. Come posso modificare la tua macro per farmi scegliere quei 4 file da quella cartella?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Gioele,
Per attivare lo stesso codice in cartelle di lavoro specifiche, è necessario applicare il codice seguente:

Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Dim xFB come stringa
Con Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = Vero
.Filtri.Cancella
.Filtri.Aggiungi "excel", "*.xls*"
.Mostrare
Se .SelectedItems.Count < 1 Quindi esci da Sub
Per lngCount = 1 a .SelectedItems.Count
xFileName = .SelectedItems(lngCount)
Se xFileName <> "" Allora
Con Workbooks.Open(Filename:=xFileName)
'il tuo codice
Fine Con
End If
Successivo lngCount
Fine Con
End Sub

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
grazie, è stato davvero utile
Questo commento è stato fatto dal moderatore sul sito
Ciao!

Provo a inserire il mio codice nel tuo e quando eseguo la macro mi dà il seguente messaggio: Errore di runtime '429': ActiveX non può creare l'oggetto. Si prega di avvisare su come può essere risolto. Grazie!

Il mio codice:

Imposta RInput = Intervallo("A2:A21")
Imposta ROutput = Intervallo ("D2:D22")

Dim A() come variante
ReDim A(1 A RInput.Rows.Count, 0)
A = RInput.Value2

Set d = CreateObject("Scripsting.Dictionary")

Per i = 1 A UBound(A)
Se d.Esiste(A(i, 1)) Allora
d(A(i, 1)) = d(A(i, 1)) + 1
Altro
d.Aggiungi A(i, 1), 1
End If
Successiva
Per i = 1 A UBound(A)
A(i, 1) = d(A(i, 1))
Successiva

R Uscita = A
Questo commento è stato fatto dal moderatore sul sito
Ciao, innanzitutto grazie per questa macro, era esattamente quello che stavo cercando. Tuttavia ho un problema, c'è un modo per chiudere e salvare ogni finestra quando viene completata. Ho una grande quantità di file e sto esaurendo la RAM prima che l'esecuzione sia completa.
Questo commento è stato fatto dal moderatore sul sito
Sì, basta aggiungere sotto il codice seguente se si desidera salvare il file con lo stesso nome:

'Salvare la cartella di lavoro
ActiveWorkbook.Salva
Questo commento è stato fatto dal moderatore sul sito
Ciao, Caitlin,
Forse il codice seguente può aiutarti, ogni volta dopo aver eseguito il tuo codice specifico, verrà visualizzata una finestra di richiesta di salvataggio del file che ti ricorderà di salvare la cartella di lavoro.

Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Dim xWB come cartella di lavoro
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
On Error Resume Next
Fai mentre xFileName <> ""
Imposta xWB = Cartelle di lavoro.Open(xFdItem & xFileName)
Con xWB
'il tuo codice qui
Fine Con
xWB.Chiudi
xNomeFile = Dir
Ciclo continuo
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao!

Provo a inserire il mio codice nel tuo e quando eseguo la macro mi dà il seguente messaggio: Errore di runtime '429': ActiveX non può creare l'oggetto. Si prega di avvisare su come può essere risolto. Grazie!

Il mio codice:

Imposta RInput = Intervallo("A2:A21")
Imposta ROutput = Intervallo ("D2:D22")

Dim A() come variante
ReDim A(1 A RInput.Rows.Count, 0)
A = RInput.Value2

Set d = CreateObject("Scripsting.Dictionary")

Per i = 1 A UBound(A)
Se d.Esiste(A(i, 1)) Allora
d(A(i, 1)) = d(A(i, 1)) + 1
Altro
d.Aggiungi A(i, 1), 1
End If
Successiva
Per i = 1 A UBound(A)
A(i, 1) = d(A(i, 1))
Successiva

R Uscita = A
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Ho usato con successo questa macro per formattare i file NBA per le 30 squadre ciascuna con il proprio libro. Ieri ho ricevuto un messaggio di errore e che il modulo (macro) non può essere completato, cancellato o modificato (da salvare). Ha danneggiato la mia cartella di lavoro macro personale e reso Excel praticamente inutilizzabile per me. Si arresta in modo anomalo l'app ogni volta che provo ad accedere a una macro da qualsiasi file. Il supporto di Excel e il supporto di Windows non sono stati in grado di risolvere le cose. Puoi aiutare?
Questo commento è stato fatto dal moderatore sul sito
Ciao, c'è un modo per definire la destinazione del file nello script stesso. Voglio saltare il processo 3 in cui dobbiamo sfogliare la cartella specifica.
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per questo codice. puoi dirmi come posso avere il risultato della mia macro per la quale ho aperto tutte le cartelle di lavoro in un foglio (il risultato di ogni cartella di lavoro di seguito)? e c'è un modo per aggiungere il nome di ogni cartella di lavoro alla riga con i dati del passaggio precedente?
Questo commento è stato fatto dal moderatore sul sito
Hi

Ho ricevuto un errore di runtime 1004: la sintassi non è corretta quando ho eseguito il codice seguente che è Extend Office VBA su "Esegui una macro allo stesso modo su più cartelle di lavoro con codice VBA" con Extend Office VBA "Elimina tutti gli intervalli denominati con codice VBA" nello slot inserisci il tuo codice:

Sub LoopThroughFiles()

Dim xFd come finestra di dialogo

Dim xFdItem come variante

Dim xFileName come stringa

Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)

Se xFd.Show = -1 Allora

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

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

Fai mentre xFileName <> ""

Con Workbooks.Open (xFdItem e xFileName)

' Sub CancellaNomi()

'Aggiornamento 20140314

Dim xNome come nome

Per ogni xName in Application.ActiveWorkbook.Names

xNome.Elimina

Successiva


Fine Con

xNomeFile = Dir

Ciclo continuo

End If

End Sub

Quello che sto cercando di fare è eseguire una macro che elimini gli intervalli denominati in otto cartelle di lavoro contenute nella stessa cartella.

A proposito, questa è la prima volta che utilizzo qualcosa da Extend Office e non funziona. Questo sito è stato estremamente utile per me.

Suggerimenti/commenti sarebbero molto apprezzati.

alc
Questo commento è stato fatto dal moderatore sul sito
Ciao, Aldc,
Il tuo codice funziona bene nella mia cartella di lavoro, quale versione di Excel usi?
Questo commento è stato fatto dal moderatore sul sito
Ciao, questo codice è così buono e utile. Lo uso molto!

Al giorno d'oggi, nella mia organizzazione ora utilizziamo SharePoint per archiviare i nostri file. C'è un modo per far funzionare questo codice su tutti i file in una cartella di sharepoint?
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per questo codice.
C'è un modo per scorrere anche le sottocartelle? Diciamo che ho una cartella e all'interno della cartella altre dieci cartelle ciascuna contenente un file excel.

C'è un modo per selezionare semplicemente la cartella principale in modo che il codice venga eseguito in tutte le sue sottocartelle?

Thank you.
Questo commento è stato fatto dal moderatore sul sito
Ciao Darko, per eseguire un codice da una cartella con le sottocartelle, applica il seguente codice: Sub LoopThroughFiles_Subfolders (xStrPath come stringa)
Dim xSFolderName
Dim xNomeFile
Dim xArrSFPath() come stringa
Dim xI come intero
Se xStrPath = "" Quindi esci da Sub
xFileName = Dir(xStrPath & "*.xls*")
Fai mentre xFileName <> ""
Con cartelle di lavoro.Open(xStrPath & xFileName)
'il tuo codice qui
Fine Con
xNomeFile = Dir
Ciclo continuo
xSFolderName = Dir(xStrPath, vbDirectory)
xI = 0
ReDim xArrSFPath(0)
Fai mentre xSFolderName <> ""
Se xSFolderName <> "." E xSFolderName <> ".." Quindi
Se (GetAttr(xStrPath & xSFolderName) e vbDirectory) = vbDirectory Allora
xI = xI + 1
ReDim Preserva xArrSFPath(xI)
xArrSFPath(xI - 1) = xStrPath & xSFolderName & "\"
End If
End If
xSFolderName = Dir
Ciclo continuo
Se UBound(xArrSFPath) > 0 Allora
Per xI = 0 A UBound(xArrSFPath)
LoopThroughFiles_Sottocartelle (xArrSFPath(xI))
Avanti xI
End If
End Sub
Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
LoopThroughFiles_Sottocartelle (xFdItem)
End If
End SubPer favore prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Oltre al codice sopra, è possibile aprire i file excel nell'ordine cronologico che volevo?
Questo commento è stato fatto dal moderatore sul sito
Ciao prima di tutto grazie mille per la macro con cui è davvero utile lavorare. Mi chiedevo solo se abbiamo un modo per aggiornare la cartella in onedrive tramite macro. Se sì, potresti farmi sapere cosa posso fare qui per aggiornare i file in onedrive usando lo script macro?
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie mille per questo script, per me funziona molto bene, ma ho esigenze speciali: c'è un modo per modificare lo script per applicare il mio codice con condizioni di nome file E nelle sottocartelle?
Spiego : sono un insegnante e ho creato una soluzione excel per salvare i risultati degli studenti e per consentire agli insegnanti di consultarli. Per farlo, ho un file per materia scolastica e uno per la classe responsabile, il tutto in una cartella per classe.
Quindi, quando trovo un bug o un'ottimizzazione, devo segnalare le modifiche in tutti i file in tutte le sottocartelle.
Ma poiché tutti i file non sono gli stessi (organizzazione di soggetti diversi), vorrei un modo per applicare il mio codice par esempio a tutti i file denominati "classe matematica" in tutte le sottocartelle o, al contrario, per applicare il mio codice a tutti i file nelle sottocartelle eccetto tutti i file denominati "xyz". Grazie !Fabrice
Questo commento è stato fatto dal moderatore sul sito
Il codice fornito non funziona con il seguente VBA, per favore, aiutaiSub Bundles()

Oscura vWS come foglio di lavoro
Dim vA, vA2()
Dim vR per tutto il tempo, vSum per tutto il tempo, vC per tutto il tempo
Dim vN Quanto a lungo, vN2 tanto a lungo, vN3 quanto a lungo

Imposta vWS = Foglio attivo
Con vWS
vR = .Cells(Righe.Conteggio, 4).Fine(xlSu).Riga
vSum = Application.Sum(.Range("D2:D" & vR))
ReDim Preserve vA2 (da 1 a vSum, da 1 a 4)
vA = .Range("A2:D" & vR)
Per vN = 1 Per vR - 1
Per vN2 = 1 Per vA(vN, 4)
vC = vC + 1
Per vN3 = da 1 a 4
vA2(vC, vN3) = vA(vN, vN3)
Avanti vN3
Avanti vN2
Avanti vN
Fine Con
vC = 1
Per vN = 1 A vSum - 2
vA2(vN, 4) = vC
Se vA2(vN + 1, 2) = vA2(vN, 2) Allora
vC = vC + 1
vA2(vN + 1, 4) = vC
Altro
vA2(vN + 1, 4) = 1
vC = 1
End If
Avanti vN
Application.ScreenUpdating = False
Fogli. Aggiungi
Con ActiveSheet
vWS.Range("A1:D1").Copy .Range("A1:D1")
.Cells(2, 1).Resize(vSum, 4) = vA2
Fine Con
Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
Voglio eseguire questo VBA in più fogli in una cartella alla volta, puoi aiutareSub Bundles()

Oscura vWS come foglio di lavoro
Dim vA, vA2()
Dim vR per tutto il tempo, vSum per tutto il tempo, vC per tutto il tempo
Dim vN Quanto a lungo, vN2 tanto a lungo, vN3 quanto a lungo

Imposta vWS = Foglio attivo
Con vWS
vR = .Cells(Righe.Conteggio, 4).Fine(xlSu).Riga
vSum = Application.Sum(.Range("D2:D" & vR))
ReDim Preserve vA2 (da 1 a vSum, da 1 a 4)
vA = .Range("A2:D" & vR)
Per vN = 1 Per vR - 1
Per vN2 = 1 Per vA(vN, 4)
vC = vC + 1
Per vN3 = da 1 a 4
vA2(vC, vN3) = vA(vN, vN3)
Avanti vN3
Avanti vN2
Avanti vN
Fine Con
vC = 1
Per vN = 1 A vSum - 2
vA2(vN, 4) = vC
Se vA2(vN + 1, 2) = vA2(vN, 2) Allora
vC = vC + 1
vA2(vN + 1, 4) = vC
Altro
vA2(vN + 1, 4) = 1
vC = 1
End If
Avanti vN
Application.ScreenUpdating = False
Fogli. Aggiungi
Con ActiveSheet
vWS.Range("A1:D1").Copy .Range("A1:D1")
.Cells(2, 1).Resize(vSum, 4) = vA2
Fine Con
Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ho provato a eseguire il codice ma viene visualizzato l'errore "424: Object Required" nella riga "With Workbooks.Open(xFdItem & xFileName)". Guardando più in profondità, sembra che le cartelle di lavoro di excel memorizzate nella cartella di interesse non vengano visualizzate/esistate (Quando si apre la finestra con la visualizzazione del codice, se provo ad aprire la cartella e non a selezionarla, è vuota). Come mai?
Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Fai mentre xFileName <> ""
Con Workbooks.Open (xFdItem e xFileName)
Fogli.Aggiungi dopo:=Foglio attivo
Fogli("Foglio2").Seleziona
Fogli("Foglio2").Nome = "Master"
Fogli ("Master").Seleziona
Fogli("Master").Sposta prima:=Fogli(1)
Fine Con
xNomeFile = Dir
Ciclo continuo
End If
End Sub


Potete per favore aiutarmi a risolvere questo problema?
Questo commento è stato fatto dal moderatore sul sito
Questo è il mio sito Web preferito con le istruzioni più chiare in assoluto (più di qualsiasi video di YouTube) e continuo a tornarci più e più volte. Grazie mille per questi tutorial: sei il salvavita di uno studente laureato triste.
Questo commento è stato fatto dal moderatore sul sito
Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Fai mentre xFileName <> ""
Con Workbooks.Open (xFdItem e xFileName)
' ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selezione.Inserisci Maiusc:=xlToRight
ActiveCell.Select
Fine Con
xNomeFile = Dir
Ciclo continuo
End If
End Sub, per favore aiutami. A proposito, la mia estensione dei file excel è (.csv - "delimitato da virgola") . e ho 500 file excel in una cartella con una media di ogni riga di circa 500000 numero di righe .. Per favore aiutatemi . Voglio solo inserire una colonna in ogni cartella di lavoro
Questo commento è stato fatto dal moderatore sul sito
hai mai avuto risposta alla tua domanda? Sto cercando di fare la stessa cosa su oltre 3700 file CSV. Ho solo bisogno di aggiungere 1 colonna (A).
Questo commento è stato fatto dal moderatore sul sito
Ciao, bisognosi e Carly, per risolvere il tuo problema, per eseguire il codice per più file CSV, devi solo cambiare l'estensione del file .xls in .csv come mostrato di seguito: Sub LoopThroughFiles()
Dim xFd come finestra di dialogo
Dim xFdItem come variante
Dim xFileName come stringa
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems(1) e Application.PathSeparator
xFileName = Dir(xFdItem & "*.csv*")
Fai mentre xFileName <> ""
Con Workbooks.Open (xFdItem e xFileName)
ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selezione.Inserisci Maiusc:=xlToRight
ActiveCell.Select
Fine Con
xNomeFile = Dir
Ciclo continuo
End If
End SubPer favore prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao, è possibile eseguire la macro solo nei fogli di diverse cartelle di lavoro con un nome specifico? Grazie!!
Questo commento è stato fatto dal moderatore sul sito
Ciao, Sara,
Siamo spiacenti, non c'è una buona soluzione al problema che hai sollevato.
.
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL