"Excel VBA" duomenų kopijavimas iš kito sąsiuvinio neatidarant

  • Pasidalinti
Hugh West

Svetainėje "Microsoft Excel , VBA makrokomandos galima lengvai išspręsti įvairias problemas. Jei norime nukopijuoti duomenis iš kito sąsiuvinio jo neatidarydami, tai galime lengvai padaryti naudodami "Excel" VBA Šiame straipsnyje sužinosite "Excel" VBA nukopijuoti duomenis iš kito sąsiuvinio jo neatidarant.

Atsisiųsti praktikos sąsiuvinį

Galite atsisiųsti pratybų sąsiuvinį ir pasipraktikuoti su jais.

Kito sąsiuvinio duomenų kopijavimas.xlsm

3 skirtingi būdai nukopijuoti duomenis iš kito sąsiuvinio neatidarant su "Excel VBA

Kartais mums prireikia duomenų iš ankstesnio sąsiuvinio. Jei skubame ir duomenų reikia iš karto, neatidarius sąsiuvinio, galime naudoti "Excel" VBA . Naudodami "Excel VBA" galime greitai nukopijuoti duomenis iš kitų sąsiuvinių, tam tereikia žinoti konkretaus sąsiuvinio vietą.

Norėdami nukopijuoti duomenis, naudosime sąsiuvinio pavadinimą Produkto_duomenys . Ir mes norime nukopijuoti duomenų diapazoną ( B4:E10 ). Duomenų rinkinyje, kurį norime nukopijuoti, yra keletas produktų, jų pardavimo kaina, prekių savikaina ir bendrojo pelno marža. Panagrinėkime įvairius kriterijus, kuriais remiantis galima nukopijuoti duomenis iš kito sąsiuvinio.

1. Lapo duomenų kopijavimas iš kito sąsiuvinio neatidarant su "Excel VBA

Duomenis iš lapo galime nukopijuoti vadovaudamiesi VBA Toliau pateikiamas kodas. Tam turime atlikti toliau nurodytus veiksmus.

ŽINGSNIAI:

  • Pirmiausia eikite į Kūrėjas skirtuką iš juostos.
  • Po to spustelėkite "Visual Basic atidaryti "Visual Basic" redaktorius .
  • Kitas būdas atidaryti "Visual Basic" redaktorius tiesiog paspauskite Alt + F11 .

  • Arba dešiniuoju pelės klavišu spustelėkite lapą ir pasirinkite Peržiūrėti kodą .

  • Dabar užrašykite VBA kodas žemiau.

VBA kodas:

 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 SubPabaiga su Pabaiga Sub 
  • Galiausiai paleiskite kodą spustelėdami Bėgti su antrininku (angl. Run Sub) mygtuką, kita vertus, paspauskite klaviatūros spartųjį klavišą F5 paleisti kodą.

PASTABA: Jums nereikia keisti kodo. Tiesiog nukopijuokite ir įklijuokite kodą.

  • Vykdydami kodą Atidaryti failą iš kompiuterio pasirodys langas.
  • Po to spustelėkite sąsiuvinį, kuriame norite rinkti duomenis.
  • Tada spustelėkite GERAI mygtuką.

  • Dabar pasirinkite duomenis iš šaltinio failo vilkdami per diapazoną B5:E10 ir spustelėkite GERAI .

  • Pasirinkę duomenų intervalą. Dabar pasirinkite paskirties intervalą, į kurį norite įrašyti duomenis.
  • Ir spustelėkite GERAI .

  • Galiausiai bus uždarytas šaltinio failas ir duomenys bus nukopijuoti į paskirties failą.

Skaityti daugiau: "Excel VBA": diapazono kopijavimas į kitą sąsiuvinį

Panašūs skaitiniai

  • Kaip įterpti iš iškarpinės į "Excel" naudojant VBA
  • Išjungti kopijavimą ir įklijavimą "Excel" be makrokomandų (su 2 kriterijais)
  • Kaip nukopijuoti paslėptas eilutes "Excel" programoje (4 paprasti metodai)
  • "Excel VBA" eilučių kopijavimas į kitą darbalapį pagal kriterijus
  • Kaip naudoti VBA, kad į "Excel" įklijuotumėte tik vertes be formatavimo

2. VBA duomenų diapazonui kopijuoti iš kito sąsiuvinio neatidarant "Excel

Naudodami VBA Toliau pateiktame kode galime nukopijuoti duomenis iš duomenų intervalo. Norėdami tai atlikti, turime atlikti toliau nurodytus veiksmus.

ŽINGSNIAI:

  • Norėdami pradėti, eikite į Kūrėjas juostos skirtukas.
  • Antra, atidarykite "Visual Basic" redaktorius spustelėdami "Visual Basic arba paspausdami Alt + F11 .
  • Arba tiesiog dešiniuoju pelės klavišu spustelėkite lapą ir pasirinkite Peržiūrėti kodą atidaryti "Visual Basic" redaktorius .

  • Po to užrašykite VBA kodas ten.

VBA kodas:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'kur įdėti nukopijuotus duomenis. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Čia paleiskite kodą naudodami Paleisti Sub arba paspauskite sparčiąją klaviatūros kombinaciją F5 paleisti kodą.

PASTABA: Jums nereikia keisti kodo, jums tereikia pakeisti intervalą pagal šaltinio duomenis.

  • Galiausiai duomenys iš kito sąsiuvinio nukopijuojami į aktyvųjį sąsiuvinį.

Skaityti daugiau: Makrokomandos kopijavimui ir įklijavimui iš vieno darbalapio į kitą (15 metodų)

3. "Excel VBA" duomenų kopijavimas iš kito sąsiuvinio neatidarant naudojant komandų mygtuką

Duomenis iš kito sąsiuvinio galime nukopijuoti naudodami komandų mygtuką VBA kodą. Norėdami tai padaryti, turime atlikti toliau nurodytus veiksmus.

ŽINGSNIAI:

  • Pirma, įdėti Komandos mygtukas , eikite į Kūrėjas skirtukas.
  • Antra, spustelėkite Įdėkite išskleidžiamąjį meniu.
  • Trečia, spustelėkite Komandos mygtukas .

  • Mes įdėti Produktas ląstelėje A1 , nes tai yra mūsų šaltinio failo lapo pavadinimas. Ir nustatome Komandos mygtukas , šaltinio failo lapo pavadinimo dešinėje pusėje. Dabar sukūrėme lentelę, mums tereikia duomenų, kurie yra kitame sąsiuvinyje.

  • Taip pat pereikite į Kūrėjas juostos skirtukas.
  • Tada spustelėkite "Visual Basic arba paspauskite Alt + F11 paleisti "Visual Basic" redaktorius .
  • Taip pat galite atidaryti "Visual Basic" redaktorius dešiniuoju pelės klavišu spustelėdami ant lapo ir pasirinkdami Peržiūrėti kodą .

  • Dabar parašykite VBA kodas žemyn.

VBA kodas:

 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 
  • Tada išsaugokite kodą paspausdami Ctrl + S .

PASTABA: Galite nukopijuoti kodą, tereikia pakeisti failo kelią ir duomenų diapazoną.

  • Galiausiai, jei spustelėsite CommandButton1 tai nukopijuos duomenis iš kito sąsiuvinio jo neatidarant.

Skaityti daugiau: Duomenų kopijavimo iš vieno sąsiuvinio į kitą pagal kriterijus makrokomanda

Išvada

Pirmiau nurodyti kriterijai yra gairės, kaip nukopijuoti duomenis iš kito sąsiuvinio neatidarant jo su "Excel" VBA . Tikimės, kad tai jums padės! Jei turite klausimų, pasiūlymų ar atsiliepimų, praneškite mums komentarų skiltyje. Arba galite peržvelgti kitus mūsų straipsnius ExcelWIKI.com tinklaraštis!

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.