在 Excel 2003 中,文件以扩展名 .xls 保存,而在 Excel 2007 中,文件以 .xlsm 扩展名保存(启用宏) 那么我们如何才能使包含 VBA 代码的 Excel 文件在 Excel 2003 和 Excel 2007 版本上运行呢?使用 excel 2003 进行编程是个好主意吗,因为那些带有 VBA 代码的文件可以在 excel 2007 上运行?我不知道他们是否在工作。我是 VBA 编程新手。
最佳答案
block 引用> block 引用>is it good idea to use excel 2003 for programming because those files with VBA code work on excel 2007?
阿比
这实际上取决于您计划应用程序执行的操作。有很多事情可以在 Excel 2007 中完成,但在 Excel 2003 中无法完成。那么如何在 Excel 2003 中进行编码。如果您想做基本的事情,那么可以,您可以在 Excel 2003 中进行编码,以便它可以与 Excel 一起使用2003/2007/2010。
此外,如果您在 Excel 2003 中进行编码,那么文件将以 xls 扩展名保存,这是很自然的。如果您计划在 Excel 2007/2010 中编码,请将文件另存为 .xls,以便它可以在 Excel 2003 中使用。
跟进
这是一个典型的例子来说明我的意思。当您想要在 Excel 2007 中对数据进行排序时,如果您录制宏,您会得到这样的结果,但在 2003 中这不起作用。
Sub Macro1() ' ' Macro1 Macro ' ' Columns("A:C").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A9"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:C9") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
但是,如果您在 Excel 2003 中记录宏,您将得到类似的结果(从内存中执行此操作,否则我将不得不重新启动计算机来记录宏,哈哈)。现在这段代码适用于每个版本:)
Sub Macro1() ' ' Macro1 Macro ' ' Columns("A:C").Select Selection.Sort Key1:=ws1.Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub
HTH
席德
关于vba - VBA中Excel文件的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9459734/