Excel VBA per copiare i dati da un'altra cartella di lavoro senza aprirla

  • Condividi Questo
Hugh West

In Microsoft Excel , Macro VBA può risolvere facilmente un'ampia gamma di problemi. Se vogliamo copiare i dati da un'altra cartella di lavoro senza aprire la cartella di lavoro, possiamo farlo facilmente usando Excel VBA In questo articolo, imparerete Excel VBA per copiare i dati da un'altra cartella di lavoro senza aprirla.

Scarica il quaderno di esercizi

Potete scaricare il libro di lavoro ed esercitarvi con loro.

Copia di un'altra cartella di lavoro Data.xlsm

3 modi diversi per copiare i dati da un'altra cartella di lavoro senza aprirla con Excel VBA

A volte abbiamo bisogno di dati da una cartella di lavoro precedente. Se abbiamo fretta e abbiamo bisogno dei dati immediatamente senza aprire la cartella di lavoro, possiamo usare il comando Excel VBA Con Excel VBA è possibile copiare rapidamente i dati da altre cartelle di lavoro; a tale scopo, è sufficiente conoscere la posizione di quella particolare cartella di lavoro.

Per copiare i dati utilizzeremo il nome della cartella di lavoro Dettagli del prodotto E vogliamo copiare l'intervallo di dati ( B4:E10 ). Il set di dati che vogliamo copiare contiene alcuni prodotti, il loro prezzo di vendita, il costo della merce e i margini di profitto lordo. Vediamo i diversi criteri per copiare i dati da un'altra cartella di lavoro.

1. Copiare i dati di un foglio da un'altra cartella di lavoro senza aprirla con Excel VBA

È possibile copiare i dati da un foglio seguendo il comando VBA Per questo, è necessario seguire i passaggi indicati di seguito.

FASI:

  • In primo luogo, andare alla pagina Sviluppatore dalla barra multifunzione.
  • Successivamente, fare clic su Visual Basic per aprire il Editor Visual Basic .
  • Un altro modo per aprire il file Editor Visual Basic è semplicemente premere Alt + F11 .

  • Oppure, fare clic con il tasto destro del mouse sul foglio, quindi selezionare Codice .

  • Ora, scrivete il Codice VBA di seguito.

Codice VBA:

 Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Select Data Range", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Select Destination Range", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End SubFine Con Fine Sub 
  • Infine, eseguire il codice facendo clic sul pulsante Esegui Sub premere la scorciatoia da tastiera F5 per eseguire il codice.

NOTA: Non è necessario modificare il codice, basta copiare e incollare il codice.

  • Eseguendo il codice Apertura file dal computer.
  • Successivamente, fare clic sulla cartella di lavoro di cui si desidera raccogliere i dati.
  • Quindi, fare clic sul pulsante OK pulsante.

  • A questo punto, selezionare i dati dal file di origine trascinandoli sull'intervallo B5:E10 e poi fare clic su OK .

  • Dopo aver selezionato l'intervallo di dati, selezionare l'intervallo di destinazione in cui inserire i dati.
  • E fare clic su OK .

  • Alla fine, si chiude il file di origine e i dati vengono copiati sul file di destinazione.

Per saperne di più: Excel VBA: copiare un intervallo in un'altra cartella di lavoro

Letture simili

  • Come incollare dagli appunti in Excel utilizzando VBA
  • Disattivare il copia e incolla in Excel senza macro (con 2 criteri)
  • Come copiare l'esclusione delle righe nascoste in Excel (4 metodi semplici)
  • Excel VBA per copiare righe in un altro foglio di lavoro in base a criteri
  • Come utilizzare VBA per incollare solo valori senza formattazione in Excel

2. VBA per copiare un intervallo di dati da un'altra cartella di lavoro senza aprirla in Excel

Utilizzando l'opzione VBA Il codice che segue ci consente di copiare i dati da un intervallo di dati. Per farlo, è necessario seguire i passaggi indicati di seguito.

FASI:

  • Per iniziare, navigare nella cartella Sviluppatore sulla barra multifunzione.
  • In secondo luogo, aprire il file Editor Visual Basic facendo clic su Visual Basic o premendo Alt + F11 .
  • In alternativa, è sufficiente fare clic con il tasto destro del mouse sul foglio e selezionare Visualizza il codice per aprire il Editor Visual Basic .

  • Dopo di che, scrivete il Codice VBA lì.

Codice VBA:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'dove mettere i dati copiati. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Qui, eseguire il codice utilizzando Correre Sub o premere la scorciatoia da tastiera F5 per eseguire il codice.

NOTA: Non è necessario modificare il codice, basta cambiare l'intervallo in base ai dati di origine.

  • Infine, i dati vengono copiati da un'altra cartella di lavoro nella cartella di lavoro attiva.

Per saperne di più: Macro per copiare e incollare da un foglio di lavoro a un altro (15 metodi)

3. Excel VBA per copiare i dati da un'altra cartella di lavoro senza aprirla utilizzando il pulsante di comando

È possibile copiare i dati da un'altra cartella di lavoro utilizzando il pulsante di comando sul pannello di comando VBA Per ottenere questo risultato, è necessario seguire la procedura descritta di seguito.

FASI:

  • In primo luogo, per mettere un Pulsante di comando , andare alla pagina Sviluppatore scheda.
  • In secondo luogo, fare clic sul pulsante Inserire menu a discesa.
  • In terzo luogo, fare clic sul pulsante Pulsante di comando .

  • Abbiamo messo il Prodotto sulla cella A1 che è il nome del foglio del nostro file sorgente. E impostiamo il file Pulsante di comando Abbiamo creato la tabella ora, abbiamo solo bisogno dei dati che si trovano in un'altra cartella di lavoro.

  • Allo stesso modo, si può navigare verso la cartella Sviluppatore sulla barra multifunzione.
  • Successivamente, fare clic su Visual Basic o premere Alt + F11 per lanciare il Editor Visual Basic .
  • È inoltre possibile aprire il file Editor Visual Basic facendo clic con il tasto destro del mouse sul foglio e selezionando Visualizza il codice .

  • Ora, scrivete il testo VBA codice giù.

Codice VBA:

 Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet3").Activate currentworkbook.Worksheets("Sheet3").Cells(4, 1).Select ActiveSheet.Pastesourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Activate Worksheets("Sheet3").Range("A2").Select End Sub 
  • Quindi, salvare il codice premendo Ctrl + S .

NOTA: È possibile copiare il codice, basta modificare il percorso del file e l'intervallo di dati.

  • Infine, se si fa clic sul pulsante Pulsante di comando1 Questo copierà i dati da un'altra cartella di lavoro senza aprirla.

Per saperne di più: Macro per copiare i dati da una cartella di lavoro a un'altra sulla base di criteri

Conclusione

I criteri di cui sopra sono le linee guida per copiare i dati da un'altra cartella di lavoro senza aprirla con Excel VBA Se avete domande, suggerimenti o feedback, fatecelo sapere nella sezione dei commenti. Oppure potete dare un'occhiata agli altri articoli della nostra rubrica ExcelWIKI.com blog!

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.