我正在尝试将一系列数据从一个文件粘贴到另一个文件。但这会影响目标文件的格式。请求您的帮助。
下面是我正在使用的代码的一部分:
Dim repdata As Range
Set wb1 = Workbooks.Open("file name")
Set repdata = Range("A2", Cells(lastrow, lastcol))
Set wb = Workbooks.Open("file2")
repdata.Copy Destination:=Range("B8")
但这会覆盖目标中的格式。
我尝试过:
repdata.Copy Destination:=Range("B8").PasteSpecial(xlPasteValues).
这不起作用。给出错误
我也尝试过
repdata.Copy Destination:=Range("B8").PasteSpecial xlPasteValues.
即使这不起作用。给出错误
答案 0 :(得分:1)
很难给您一个确定的答案,因为您没有用Minimal, Complete and Verifiable Example发表问题-在以后的问题中应该牢记这一点。
要回答您的问题,斧头很可能就在这里-请勿将Destination
与PasteSpecial
一起使用
假设代码中的所有其他功能都正常,这应该可以正常工作。
Dim repdata As Range
Dim wb1 as Workbook, wb2 As Workbook
Set wb1 = Workbooks.Open("file name")
Set wb2 = Workbooks.Open("file2")
Set repdata = wb1.Range("A2", Cells(lastrow, lastcol))
repdata.Copy
wb2.Range("B8").PasteSpecial xlPasteValues
答案 1 :(得分:0)
这是直接值传输的示例,不会影响目标格式。
dim wb as workbook, wb1 as workbook
Dim repdata As Range, lastrow as long, lastcol as long
Set wb1 = Workbooks.Open("file name")
with wb1.worksheets("sheet")
lastrow = .cells(.rows.count, "A").end(xlup).row
lastcol = .cells(2, .columns.count).end(xltoleft).column
with .Range(.cells(2, "A"), .Cells(lastrow, lastcol))
Set wb = Workbooks.Open("file2")
wb.worksheets("sheetx").cells(8, "B").resize(.rows.count..columns.count) = .value
end with
end with
依靠新打开的工作簿的activesheet属性被认为不是“最佳实践”。正确引用您的工作表,即使这意味着为单个工作表工作簿使用worksheets(1)。