我正在将数据从一个工作簿(“firstWB”)复制到另一个工作簿(“secondWB”)。第一个工作簿实际上是.txt文件。我将文件扩展名更改为.xls以使用它。
在我的firstWB中,我有这个包含数据的列:
0
0
0
0
0
2,378
2,378
3,038
3,038
3,146
3,146
3,146
3,151
3,151
3,107
3,107
使用firstWB.Sheets(1).Range(copyRng.Address).Copy
我会将数据放入剪贴板。然后我使用ActiveSheet.Paste Destination:=Worksheets("Tabelle2").Range("A2")
粘贴它。
复制和粘贴工作正常,但值会更改。在我的SecondWB中如果找到这个数据:
0,000
0,000
0,000
0,000
0,000
2.378
2.378
3.038
3.038
3.146
3.146
3.146
3.151
3.151
3.107
我该如何避免这种情况?
答案 0 :(得分:0)
firstWB是硬数据中的值,还是单元格引用?我有一种感觉.copy正在复制单元格引用,因此当您粘贴时,引用然后引用具有不同信息的另一个位置。
一种可能的解决方案是将范围值设置为彼此相等,而不是复制/粘贴。这应该让你知道如何做到这一点(注意你必须调整它以适应你的范围):
sub test()
dim secondWB as worksheet
dim rng as Range, rng2 as Range 'rng will be the range you want to copy, rng2 is destination
Set rng = Range("A1:A10")
set rng2 = secondWB.range("B1:B10")
rng2.Value = rng.value 'this will set the range values equal.
end sub