从macros中打开XLS文件时数据发生更改

我想要在工作簿1上有一个macros,要求用户打开一个工作簿(工作簿2),该工作簿只有一张工作表,可以将所有数据复制到工作簿1中的“导入”工作表。

我的代码如下

Sub test() Dim NewWB As Workbook Dim Vfile As Variant Vfile = Application.GetOpenFilename("Excel-files,*.xls", 1, "The Import _ sheet is empty, please select ME3M data to import", , False) If Vfile = False Then Exit Sub Set NewWB = Workbooks.Open(Vfile) NewWB.Sheets(1).Cells.Copy Destination:=ThisWorkbook.Sheets("Import").Range("A1") NewWB.Close End Sub 

我的问题是,我需要打开的文件是在XLS和macros(我想要复制数据)在xlsx,我怀疑这会产生一些问题,因为有一些单元格包含数字只是如果通过vba打开,则更改它们的值。

例如,在一个单元格中,数字是1.500(一千五百),如果我按照旧的方式打开该文件,那就是我所看到的; 但是如果我通过运行上面的代码而不是最后两行来获得它被macros打开,单元格中的数字就变成了1.5(一个半)。

如果你使用:

 Set NewWB = Workbooks.Open(Filename:=Vfile, Local:=True) 

它应该尊重您的本地设置,而不是像VBA默认的那样使用美国设置。