Где я на разработчиков, были обновлены до Excel 2007, но большинство пользователей этого не сделали. Я создаю шаблон электронной таблицы (* .xlt) для пользователя, которому понадобится некоторый код vba, и мне интересно, какие проблемы я могу запустить для создания этого в 2007 году вместо 2003? У меня нет доступа к машине с Excel 2003 для тестирования, и я беспокоюсь, что этот конкретный проект направлен на катастрофу.Запись VBA в Excel 2007 для использования в Excel 2003
ответ
Язык VBA не изменился, но в Office 2007 есть дополнительные объекты, которые не находятся в Office 2003. Естественно, это приведет к ошибке во время выполнения попыток доступа к этим элементам в среде 2003 года. Что мешает вам настроить виртуальную машину с помощью Excel 2003?
У меня нет доступа к работе виртуальной машины здесь. Если вы можете указать мне на список дополнительных объектов, чтобы я мог знать, чтобы их избежать, это было бы хорошо. –
billb2112 является правильным. Существует множество изменений в Excel 2007 по сравнению с Excel 2003, которые не поддерживают обратную совместимость. Хотя язык, возможно, не изменился, объекты были обновлены. У некоторых добавлены дополнительные свойства, некоторые работают по-разному, а некоторые функции в Excel изменены.
Вы должны быть очень осторожны, чтобы то, что вы используете в Excel 2003. Я бы предложил, поскольку billb2112 сказал, что вы получаете виртуальную машину, чтобы не только тестировать, но и вводить код. клиентов, которые имеют только 2003 год на машине 2003 года. Обратите внимание: если пользователи имеют Excel 2002 или 2000, по мере того, как вы вернетесь, появляется еще больше различий, и вы просто получите ошибки во время выполнения любого кода, который не поддерживаются этими более старыми версиями.
обновление К сожалению, ответ Jeffs не совсем корректен. в то время как да, язык vba не обновлялся, он не совпадает в 2007 году, как в 2003 году. поскольку в 2003 году он не совпадает с 2002 годом и т. д. произошло то, что произошло, добавлены дополнительные функции и аргументы для функций. например, в функции FIND в Excel в 2003 году больше опций, чем в 2002 году. Таким образом, если вы запишете макрос (лучший способ найти эти проблемы) в 2003 году, а затем запустите его в 2002 году, у вас будут ошибки времени выполнения, относящиеся к новые аргументы, которые просто не работают в редакторе VBA 2002 года. после того же процесса для функций, которые были изменены в excel 2007, а затем вернуться в 2003 году для проверки, вы сможете найти эти проблемы. некоторые примеры включают условное форматирование, цвета (темы) и многочисленные новые функции электронных таблиц. jon peltier имеет лучший совет в этом отношении - разработайте в самой старой версии, которую клиент/пользователь будет использовать. Virtual PC 2007 можно скачать бесплатно и установить. вам просто понадобится лицензионная копия XP/Vista и офиса для установки в нее.
К сожалению, виртуальная машина не является вариантом. Мне действительно нужен список того, какие предметы недоступны в 2003 году. –
В отличие от, возможно, неполного списка объектов и методов, которые были добавлены в библиотеку объектов Excel 2007, лучшая (умеренная) практика всегда должна разрабатываться в самой старой версии Excel, которая, вероятно, будет использоваться для запуска код.
К сожалению, у меня нет такого варианта. –
Это лучший ответ, поскольку он правильно указывает, что любой список, вероятно, будет, по крайней мере, частично неполным, и хорошо связывается с ответом VM. –
Я использовал для разработки большого количества макросов в 2003 году, что такое POTA, такие вещи, как Find, Dir и некоторые другие, недоступны или что-то изменилось. поэтому можно ожидать некоторого erros, я использовал для подсчета от 65000 строк до первой непустой строки, чтобы подсчитывать строки для работы .... теперь больше строк означает больше работы
На самом деле, просто используйте свойство .End, для чего это необходимо, поэтому вам не нужно рассчитывать на «конец» последней строки. –
Одно из отличий, которое я обнаружил, это то, что подпрограмма должна иметь другую подпись для вызова из меню (в Excel 2003), чем при вызове с ленты (в Excel 2007). Более того, Excel 2003 не распознает IRibbonControl и выбрасывает ошибки компиляции.
Чтобы работать с совместимостью между версиями, я использую аргумент условной компиляции, а затем проверяю это в макросах препроцессора.
например.
#If USINGRIBBON Then
Public Sub CallFromRibbon(control As IRibbonControl)
#Else
Public Sub CallFromRibbon()
#End If
' Code here
End Sub
Это означает, что вы должны сохранить одну версию надстройки с флагом USINGRIBBON значение ЛОЖЬ (для Excel2003), а другой с флагом USINGRIBBON значение ИСТИНА (для Excel2007), но это намного проще, чем поддерживать два совершенно разных кодовых файла.
- 1. Преобразование Excel 2007 VBA в Excel 2003
- 2. VBA Office 2007 Создать лист Excel 2003
- 3. Excel-2007 запись макроса
- 4. Excel 2007 до Excel 2003 VBA «Сортировка» вопрос
- 5. Convert excel 2007 to excel 2003
- 6. Erf() в коде VBA-Excel не работает в Excel 2003
- 7. vba in excel 2003
- 8. Excel 2007 VBA Масштабирование (без использования select?)
- 9. Excel 2007 VBA Аудит
- 10. Программно конвертировать файлы Excel 2003 в 2007+
- 11. Создание приложения для Excel 2003 с Excel 2007
- 12. VBA Excel 2007 - Cells.Find
- 13. Установка макроса VBA в Excel 2007
- 14. Преобразование Excel 2007 в Excel 97-2003 автоматически
- 15. C# Преобразование Excel 2007 (xlsx) в файл Excel 2003 (xls)
- 16. Использование документа Excel 2010 в Excel 2003 - вопросы VBA
- 17. VBA Excel 2003/2007: Объявление, заполнение и передача массива Jagged
- 18. Excel 2007 VBA Array Limit
- 19. IFERROR в Excel 2003
- 20. Перенастройка из VBA Excel 2003
- 21. Excel 2003 VBA .. писать ArrayList
- 22. Excel 2007 VBA Функция VLookup
- 23. Excel 2003, intermitent ошибка VBA
- 24. Excel 2003 vba chart failed
- 25. Ошибка VBA на странице PageSteup.PrintArea при использовании Excel 2007 отлично работает в Excel 2003
- 26. Excel VBA 2007 Сохраните книгу в режиме только для чтения
- 27. excel 2003 и excel 2007 строка, разность адресов столбца
- 28. Excel 2007 VBA RegEx Help
- 29. Как анализировать XML в VBA Excel 2003?
- 30. Открыть excel 2007 excel файлы и сохранить как 97-2003 форматы в VBA
Я убедил своего босса позволить мне создать это на странице ASP.Net вместо электронной таблицы (так будет хорошо с другими приложениями нашей интрасети), поэтому этот вопрос теперь спорный с моей точки зрения. Однако информация здесь может быть полезной для кого-то другого, поэтому я оставляю ее активной. –
На самом деле этот вопрос довольно интересный, но, к сожалению, из-за бесконечных сценариев использования, мы, вероятно, никогда не закончим его. На самом деле нет оправданий для того, чтобы не использовать VM с Office 2003 для разработки и тестирования. –