从宏打开XLS文件时数据更改

时间:2015-04-16 14:39:27

标签: excel vba excel-vba

我希望在workbook1上有一个宏,它要求用户打开一个工作簿(工作簿2),该工作簿只有一张工作表可以将所有数据复制到工作表中#34;导入"在workbook1。

我的代码如下

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,而宏打开的文件(我要复制数据)在xlsx中,我怀疑这会产生一些问题,因为有一些单元格包含如果通过vba打开,则只更改其值。

例如,在一个单元格中,数字为1.500(一千五百),如果我通过点击它以旧的方式打开该文件,这就是我所看到的;但如果我通过运行上面的代码而没有最后两行来打开宏,则单元格中的数字变为1,5(一个半)。

1 个答案:

答案 0 :(得分:1)

如果您使用:

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

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