我希望在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(一个半)。
答案 0 :(得分:1)
如果您使用:
Set NewWB = Workbooks.Open(Filename:=Vfile, Local:=True)
它应该尊重您的本地设置,而不是使用美国设置,因为VBA默认为。