VBA Excel粘贴更改值

VBA Excel粘贴更改值,vba,excel,Vba,Excel,我正在将数据从一个工作簿(“firstWB”)复制到另一个工作簿(“secondWB”)。第一个工作簿实际上是一个.txt文件。我将文件扩展名改为.xls以使用它 在我的第一个WB中,我有一列包含以下数据: 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我将把数据放入剪贴板。然后我使用Active

我正在将数据从一个工作簿(“firstWB”)复制到另一个工作簿(“secondWB”)。第一个工作簿实际上是一个.txt文件。我将文件扩展名改为.xls以使用它

在我的第一个WB中,我有一列包含以下数据:

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:=工作表(“Tabelle2”).Range(“A2”)
粘贴它。 复制和粘贴工作正常,但值会更改。在我的第二个WB中,如果找到此数据:

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

如何避免这种情况?

是firstWB硬数据中的值,还是单元格引用?我觉得.copy是在复制单元格引用,所以当你粘贴时,引用会引用另一个具有不同信息的位置

一种可能的解决方案是将范围值设置为彼此相等,而不是复制/粘贴。这应该让您了解如何做到这一点(注意,您必须调整它以适应您的范围):


这是硬数据。不幸的是,这并不能解决我的问题。唯一不同的是我并没有小数点分隔符。你们有并没有检查过这是否只是一个格式问题?检查第二个WB中的格式是否与“数字”类似。看起来它正在从美国的数字格式(每3位用一个逗号)转换为欧洲的(每3位用小数)。是的,看起来是这样。但是我怎么能检查语言?!如果尝试此公式(其中A1是欧洲格式的单元格),它是否修复了样式<代码>=TEXT(A1,“#,####,###,###.##.##”)而不是简单地将.txt扩展名更改为在Excel中打开,您是否尝试将数据放入自己的Excel中,看看Excel是否仍然给您带来麻烦?也许它正在对从.txt到.xlsx的强制更改中的格式进行处理。
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