在Excel 2003中文件以扩展名.xls和Excel 2007 .xlsm(启用宏)保存然后我们如何使用VBA代码生成我们的excel文件在版本Excel 2003和Excel 2007上运行?使用excel 2003进行编程是个好主意,因为那些带有VBA代码的文件可以在excel 2007上运行吗?我不知道他们是否在工作。我是VBA编程的新手。
答案 0 :(得分:3)
最好使用excel 2003进行编程,因为那些带有VBA代码的文件可以在excel 2007上运行吗?
ABHI
这实际上取决于您计划应用程序的具体操作。您可以在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中录制宏,您将得到类似这样的内容(从内存中执行此操作,否则我将不得不重启我的电脑来录制宏LOL)。现在这段代码适用于每个版本:)
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
西特