/ / kopírovanie pracovných listov z jedného dokumentu Excel do druhého - Excel, VBA

kopírovanie pracovných listov z jedného dokumentu programu Excel do iného - excel, vba

Zoberme si 2 dokumenty Excel: súbor Excel A a Excel B. Tieto súbory Excel majú v sebe pracovné hárky (súbor A obsahuje pracovné hárky a, b, c a súbor B obsahuje pracovné hárky d, e, f).

Potrebujem skopírovať všetko, čo je v súbore A, hárok a (a tak ďalej) a vložiť ho do druhého hárka môjho skúšobného a skúšobného listu. Viem, že musím urobiť opakovanie, ale je to.

Som úplne nový v tomto programovaní, natož VBA.

Chcem skopírovať všetko, čo je v hárku a, do môjho druhého hárku a všetko, čo je v hárku b, skopíruje sa v hárku 3 atď.

odpovede:

1 pre odpoveď č. 1

Niekoľko tipov, ako začať

(Nie sú mi úplne jasné niektoré podrobnosti, ktoré by ste chceli, ale malo by sa tým začať)

Najskôr otvorte oba zošity, vytvorte modul v jednom z nich (nezáleží na tomto kóde, ktorý z nich) a potom spustite makro

Option Explicit " at top of module - forces explicit declaration of variables,
"a good thing particularly while learning
Sub CopySheets()
Dim wbFileA As Workbook
Dim wbFileB As Workbook
Dim sh As Worksheet
Dim shCopAfter As Worksheet

" Point to the workbooks
Set wbFileA = Application.Workbooks("NameOfFileA.xls")
Set wbFileB = Application.Workbooks("NameOfFileB.xls")

" Set pointer to first sheet in FileB
Set shCopAfter = wbFileB.Sheets(1)

" loop through the sheets in FileA
For Each sh In wbFileA.Sheets
" Copy sheet to FileB
sh.Copy After:=shCopAfter
" If last sheet in book then set shCopyAfter to last sheet
If ActiveSheet.Index >= wbFileB.Sheets.Count Then
Set shCopAfter = ActiveSheet
Else
" Else set shCopyAfter to the one after the one just copied
Set shCopAfter = wbFileB.Sheets(ActiveSheet.Index + 1)
End If
Next
End Sub

0 pre odpoveď č. 2
Dim x as Integer
Dim wbA as Workbook, wbB as Workbook

Set wbA = Workbooks("FileA")
Set wbB = Workbooks("FileB")

For x=1 to wbA.Sheets.Count
wbA.sheets(x).Copy After:=wbB.sheets((2*x)-1)
Next x