Имя файла Excel в VBA - PullRequest
       43

Имя файла Excel в VBA

2 голосов
/ 27 февраля 2012

В Excel 2003 Файлы сохраняются с расширением .xls и в Excel 2007 .xlsm (макрос включен). Тогда как мы можем заставить наш файл Excel с кодом VBA работать как в версии Excel 2003, так и в Excel 2007?Это хорошая идея использовать Excel 2003 для программирования, потому что эти файлы с кодом VBA работают на Excel 2007?Я не знаю, работают ли они.Я новичок в программировании VBA.

1 Ответ

3 голосов
/ 27 февраля 2012

это хорошая идея использовать Excel 2003 для программирования, потому что эти файлы с кодом VBA работают в Excel 2007?

Абхи

Это зависит от того, что именно вы планируете делать.Есть много вещей, которые вы можете сделать в Excel 2007, которые вы не можете сделать в Excel 2003. Итак, как вы будете кодировать это в Excel 2003. Если вы хотите делать базовые вещи, то да, вы можете кодировать в Excel 2003, чтобы он работал с Excel2003/2007 / 2010.

Также вполне естественно, что если вы кодируете в Excel 2003, то файл будет сохранен с расширением xls.Если вы планируете кодировать в Excel 2007/2010, сохраните файл как .xls, чтобы он работал с Excel 2003.

FOLLOWUP

Это классический примерчто я имею в виду.Если вы хотите отсортировать данные в 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

Sid

...