2012-02-27 64 views
2

在Excel 2003中文件以擴展名.xls保存,並在Excel 2007 .xlsm中啓用(宏啓用)然後,我們如何使用VBA代碼在Excel 2003和Excel 2007上運行我們的Excel文件?使用excel 2003進行編程是個好主意,因爲那些帶有VBA代碼的文件可以在excel 2007上運行?我不知道他們是否在工作。我是VBA編程的新手。VBA中的Excel文件的文件名

回答

3

是好主意,使用Excel 2003的編程,因爲與2007年的Excel VBA代碼的工作這些文件?

ABHI

它實際上取決於究竟你打算申請做。在Excel 2007中有許多事情你不能在Excel 2003中完成。那麼你如何在Excel 2003中編寫代碼。如果你想做基本的事情,那麼是的,你可以在Excel 2003中編寫代碼,以便它可以在Excel中使用2003/2007/2010。

此外,它是自然而然的,如果你在Excel 2003中編碼,那麼該文件將被保存爲xls擴展名。如果您打算在Excel 2007/2010到代碼,然後將該文件保存爲.xls的,以便它與Excel 2003

隨訪

作品這是我的意思一個典型的例子。當你想在Excel 2007中的數據進行排序,如果您錄製宏這是你得到了什麼,但如果你記錄在Excel 2003中宏這將不會在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 

不過工作,你會得到什麼像這樣(從內存這樣做,否則我將不得不重新啓動我的電腦來記錄宏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

希德

+0

@亞洲時報Siddharth所以,編程工作在Excel 2003中具有兼容的Excel 2007即使分機不.XLSM? – 2012-02-27 03:45:49

+0

@AhhijitShelar:是的。事實上,如果你打算爲所有版本做一些嚴肅的編程,那麼我會建議使用Windows Virtual PC安裝所有版本(2003到2010)。所以,你可以在分發之前測試它:) – 2012-02-27 03:55:33

+0

@AhhijitShelar:讓我給你一個經典的例子:) 2分鐘,我會更新上面的帖子 – 2012-02-27 03:59:52