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ď č. 1Niekoľ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