Excel VBA, lai kopētu datus no citas darbgrāmatas bez atvēršanas

  • Dalīties Ar Šo
Hugh West

In Microsoft Excel , VBA makroīkli var viegli atrisināt dažādas problēmas. Ja vēlamies nokopēt datus no citas darbgrāmatas, neatverot darbgrāmatu, to varam viegli izdarīt, izmantojot Excel VBA Šajā rakstā uzzināsiet Excel VBA lai kopētu datus no citas darbgrāmatas, to neatverot.

Lejupielādēt Practice Workbook

Varat lejupielādēt darba burtnīcu un vingrināties ar tiem.

Citas darbgrāmatas datu kopēšana.xlsm

3 dažādi veidi, kā kopēt datus no citas darbgrāmatas, neatverot to ar Excel VBA

Dažreiz mums ir nepieciešami dati no kādas iepriekšējās darbgrāmatas. Ja steidzamies un dati mums ir nepieciešami nekavējoties, neatverot darbgrāmatu, varam izmantot funkciju Excel VBA . Izmantojot Excel VBA, mēs varam ātri kopēt datus no citām darbgrāmatām, lai to izdarītu, mums tikai jāzina konkrētās darbgrāmatas atrašanās vieta.

Lai kopētu datus, mēs izmantosim darbgrāmatas nosaukumu Informācija par produktu_Details . Un mēs vēlamies kopēt datu diapazonu ( B4:E10 ). Datu kopa, ko vēlamies kopēt, satur dažus produktus, to pārdošanas cenu, preču pašizmaksu un bruto peļņas normu. Apskatīsim dažādus kritērijus, lai kopētu datus no citas darbgrāmatas.

1. Loksnes datu kopēšana no citas darbgrāmatas, neatverot to ar Excel VBA

Mēs varam kopēt datus no lapas, izpildot šādas norādes VBA Lai to izdarītu, mums ir jāveic turpmāk norādītās darbības.

PASĀKUMI:

  • Vispirms dodieties uz Izstrādātājs cilni no lentes.
  • Pēc tam noklikšķiniet uz Visual Basic lai atvērtu Visual Basic redaktors .
  • Vēl viens veids, kā atvērt Visual Basic redaktors ir vienkārši nospiest Alt + F11 .

  • Vai arī noklikšķiniet uz lapas ar peles labo pogu, pēc tam atlasiet Skatīt kodu .

  • Tagad pierakstiet VBA kods zemāk.

VBA kods:

 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 SubEnd With End Sub 
  • Visbeidzot, palaidiet kodu, noklikšķinot uz Run Sub no otras puses, nospiediet tastatūras saīsni F5 taustiņu, lai palaistu kodu.

PIEZĪME: Kods nav jāmaina. Vienkārši kopējiet un ielīmējiet kodu.

  • Palaižot kodu Failu atvēršana datorā parādīsies logs.
  • Pēc tam noklikšķiniet uz darbgrāmatas, kurā vēlaties vākt datus.
  • Pēc tam noklikšķiniet uz LABI pogu.

  • Tagad atlasiet datus no avota faila, velkot virs diapazona. B5:E10 un pēc tam noklikšķiniet uz LABI .

  • Pēc datu diapazona atlases tagad atlasiet mērķa diapazonu, kurā vēlaties ievietot datus.
  • Un noklikšķiniet uz LABI .

  • Beigās tiks aizvērts avota fails, un dati tiks kopēti galamērķa failā.

Lasīt vairāk: Excel VBA: diapazona kopēšana uz citu darbgrāmatu

Līdzīgi lasījumi

  • Kā ielīmēt no starpliktuves uz Excel, izmantojot VBA
  • Izslēgt kopēšanu un ielīmēšanu programmā Excel bez makroekrāniem (ar 2 kritērijiem)
  • Kā kopēt slēpto rindu izslēgšanu programmā Excel (4 vienkāršas metodes)
  • Excel VBA, lai kopētu rindas uz citu darblapu, pamatojoties uz kritērijiem
  • Kā izmantot VBA, lai programmā Excel ielīmētu tikai vērtības bez formatēšanas

2. VBA, lai kopētu datu diapazonu no citas darbgrāmatas, neatverot to programmā Excel

Izmantojot VBA Lai to paveiktu, mums ir jāveic turpmāk norādītās darbības. Lai to paveiktu, mums ir jāveic turpmāk norādītās darbības.

PASĀKUMI:

  • Lai sāktu, dodieties uz Izstrādātājs lentes cilne.
  • Otrkārt, atveriet Visual Basic redaktors noklikšķinot uz Visual Basic vai nospiežot Alt + F11 .
  • Vai arī vienkārši noklikšķiniet uz lapas ar peles labo pogu un izvēlieties Skatīt kodu lai atvērtu Visual Basic redaktors .

  • Pēc tam pierakstiet VBA kods tur.

VBA kods:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'kur ievietot kopētos datus. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Šeit palaidiet kodu, izmantojot Palaist Sub vai nospiediet tastatūras saīsni F5 lai palaistu kodu.

PIEZĪME: Kods nav jāmaina, viss, kas jums jādara, ir tikai jāmaina diapazons atbilstoši avota datiem.

  • Visbeidzot, dati no citas darbgrāmatas tiek kopēti aktīvajā darbgrāmatā.

Lasīt vairāk: Makrokopēšana un ielīmēšana no vienas darblapas uz citu (15 metodes)

3. Excel VBA, lai kopētu datus no citas darbgrāmatas, neatverot to ar komandu pogu

Mēs varam kopēt datus no citas darbgrāmatas, izmantojot komandu pogu uz VBA Lai to paveiktu, ir jāveic turpmāk aprakstītās darbības.

PASĀKUMI:

  • Pirmkārt, likt Komandas poga , dodieties uz Izstrādātājs cilne.
  • Otrkārt, noklikšķiniet uz Ievietot nolaižamajā izvēlnē.
  • Treškārt, noklikšķiniet uz Komandas poga .

  • Mēs ieliekam Produkts par šūnu A1 , jo tas ir mūsu avota faila lapas nosaukums. Un mēs iestatām Komandas poga , avota faila lapas nosaukuma labajā pusē. Tagad esam izveidojuši tabulu, mums tikai nepieciešami dati, kas atrodas citā darbgrāmatā.

  • Tāpat arī pārejiet uz Izstrādātājs lentes cilne.
  • Pēc tam noklikšķiniet uz Visual Basic vai nospiediet Alt + F11 lai palaistu Visual Basic redaktors .
  • Varat arī atvērt Visual Basic redaktors noklikšķinot uz lapas ar peles labo pogu un izvēloties Skatīt kodu .

  • Tagad rakstiet VBA kodu uz leju.

VBA kods:

 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 
  • Pēc tam saglabājiet kodu, nospiežot Ctrl + S .

PIEZĪME: Varat kopēt kodu, tikai jāmaina faila ceļš un datu diapazons.

  • Un, visbeidzot, ja noklikšķiniet uz CommandButton1 tas nokopēs datus no citas darbgrāmatas, to neatverot.

Lasīt vairāk: Makro datu kopēšana no vienas darbgrāmatas uz citu, pamatojoties uz kritērijiem

Secinājums

Iepriekš minētie kritēriji ir vadlīnijas, lai kopētu datus no citas darbgrāmatas, neatverot to ar Excel VBA . Ceru, ka tas jums palīdzēs! Ja jums ir kādi jautājumi, ieteikumi vai atsauksmes, lūdzu, dariet mums zināmu komentāru sadaļā. Vai arī varat ielūkoties citos mūsu rakstos sadaļā ExcelWIKI.com blogs!

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.