如何将单元格从template.xml(2003文件)复制到myDoc.xltm



需要在第二个工作簿中复制牢房(范围/整个表(的代码帮助。

宏用于094-0 ..... macro.xlsm文件,我需要将第一张纸(或至少范围A1:t10范围(从第二文件复制到FIST文件的最后一个表。然后关闭第二个文件而不保存更改。

我在激活WOKRBOOK和粘贴数据方面有问题。

Dim wbk As Workbook
Sheets.Add(after:=Sheets(Sheets.Count)).name = artikl & "_SK" & i 'it's OK 
strSecondFile = "C:…..template_2003_XML.xml"
strFirstFile = "C:…..94-022605-00001_w_macro.xlsm"
Set wbk = Workbooks.Open(strSecondFile)
    Range("A1:T350").Copy
Set wbk = Workbooks("094-022605-00001_w_macro").Activate
With wbk.Sheets(sheets.Count)
    Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
End With
Workbooks("template_2003_XML.xml").Close savechanges:=False

您不需要.Activate即可设置工作簿。•您可能会从阅读中受益如何避免在Excel VBA中使用选择。

还可以在哪个工作簿和工作表中此范围为Range("A1:T350")。请注意,您Set wbk两次到两个不同的工作簿。因此,您也应该使用两个不同的变量,例如wbkSourcewbkDestination

您的语句With wbk.Sheets(sheets.Count)也没有用,除非您告诉您的范围启动.应该使用tha与语句: .Range()

Sheets.Add(After:=Sheets(Sheets.Count)).Name = artikl & "_SK" & i 'it's OK 
Dim SourceFilePath As String
SourceFilePath = "C:…..template_2003_XML.xml"
Dim DestinationFilePath As String
DestinationFilePath = "C:…..94-022605-00001_w_macro.xlsm"
Dim wbkSource As Workbook
Set wbkSource = Workbooks.Open(SourceFilePath)
Dim wbkDestination As Workbook
Set wbkDestination = ThisWorkbook 'Workbooks("094-022605-00001_w_macro")

wbkSource.Worksheets("source sheet").Range("A1:T350").Copy    
With wbkDestination.Sheets(sheets.Count)
    .Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
wbkSource.Close SaveChanges:=False

我建议始终激活Option Explicit:在VBA编辑器中,转到 tools options 需要变量声明

最新更新