Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA中Excel文件的文件名_Vba_Excel_Excel 2007_Excel 2003 - Fatal编程技术网

VBA中Excel文件的文件名

VBA中Excel文件的文件名,vba,excel,excel-2007,excel-2003,Vba,Excel,Excel 2007,Excel 2003,在Excel 2003中,文件以.xls扩展名保存,在Excel 2007.xlsm(启用宏)中保存,那么我们如何使我们的Excel文件和VBA代码同时在Excel 2003和Excel 2007版本上运行?使用Excel2003进行编程是否是个好主意,因为那些带有VBA代码的文件可以在Excel2007上工作?我不知道他们是否在工作。我是VBA编程新手 使用Excel2003进行编程是否是个好主意,因为那些带有VBA代码的文件可以在Excel2007上工作 阿比 这实际上取决于您计划应用程序做

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

使用Excel2003进行编程是否是个好主意,因为那些带有VBA代码的文件可以在Excel2007上工作

阿比

这实际上取决于您计划应用程序做什么。您可以在Excel2007中执行许多在Excel2003中无法执行的操作。那么您将如何在Excel2003中编写代码呢。如果你想做一些基本的工作,那么可以在Excel2003中编写代码,这样它就可以与Excel2003/2007/2010一起工作

而且,如果您使用Excel 2003进行编码,那么文件将以xls扩展名保存,这是很自然的。如果您计划在Excel 2007/2010中编写代码,请将该文件另存为.xls,以便与Excel 2003一起使用

跟进

这是我的意思的一个经典例子。当您想在Excel2007中对数据进行排序时,如果您记录了宏,这就是您得到的结果,但这在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
但是,如果您在Excel2003中录制宏,您将得到类似的结果(从内存中执行此操作,否则我将不得不重新启动电脑以录制宏LOL)。现在,这段代码将适用于每个版本:)


Sid

@Siddharth所以,excel 2003中的编程与excel 2007兼容,即使扩展名不是。xlsm?@AbhijitShelar:是的。事实上,如果你打算为所有版本做一些严肃的编程,那么我建议使用Windows虚拟PC安装所有版本(2003到2010)。这样你就可以在发布之前进行测试:)@AbhijitShelar:让我给你一个经典的例子:)2分钟,我会更新上面的帖子
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