文件在VBA中的Excel文件的名称

时间:2012-02-27 03:36:35

标签: vba excel-vba excel-2007 excel-2003 excel

在Excel 2003中文件以扩展名.xls和Excel 2007 .xlsm(启用宏)保存然后我们如何使用VBA代码生成我们的excel文件在版本Excel 2003和Excel 2007上运行?使用excel 2003进行编程是个好主意,因为那些带有VBA代码的文件可以在excel 2007上运行吗?我不知道他们是否在工作。我是VBA编程的新手。

1 个答案:

答案 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

西特