我在哪里开发利用已更新为Excel 2007中,但大多数用户都没有。我正在为需要包含一些vba代码的用户构建一个电子表格模板(* .xlt),我想知道在2007年而不是2003年可能会遇到什么问题?我无法访问使用Excel 2003进行测试的计算机,而且我担心这个特定项目正在发生灾难。编写VBA在Excel 2007在Excel 2003
回答
VBA语言并没有改变,但也有在Office 2007中没有的Office 2003中。当然更多的对象,当您尝试在2003年的环境中访问这些项目,这将导致运行时错误。什么阻止你设置虚拟机使用Excel 2003进行开发?
我无法在此处执行任何虚拟机工作。如果你可以指向我的附加对象列表,所以我可以知道避免它们,那很好。 – 2008-10-13 17:27:18
billb2112是正确的。 Excel 2007对excel 2003的许多更改都不是向后兼容的。虽然语言可能没有改变,但对象已经更新。一些已经添加了额外的属性,一些工作方式不同,Excel中的一些功能已经改变。
你需要非常小心,你的代码在Excel 2003中工作。 我会建议,因为billb2112说,你得到一个虚拟机不仅测试,而且代码英寸我做我所有的Excel开发为在2003年的机器上只有2003的客户。请注意,如果用户使用Excel 2002或2000,则返回时会有更多差异,并且只会在这些旧版本不支持的任何代码上发生运行时错误。
更新 不幸的是杰夫斯的答案是不太正确的。而对VBA语言尚未更新,它不是在2007年与2003年一样,2003年的不一样,2002年等 发生了什么事是额外的功能和附加功能和参数已被添加。例如,2003年在Excel中的FIND函数中有更多的选项比2002年更多。因此,如果在2003年录制一个宏(找到这些问题的最好方法),然后在2002年运行它,那么将会运行与新的参数在2002年VBA编辑器中无法使用。对于在Excel 2007中已更改的功能执行相同的过程,然后再回到2003进行测试,将帮助您找到这些问题。一些例子包括条件格式化,颜色(主题)和许多新的电子表格功能。 jon peltier从这方面得到了最好的建议 - 在客户端/用户将使用的最早版本中开发。 Virtual PC 2007可以免费下载和安装。你只需要一个XP/Vista和办公室的许可副本来安装运行它。
不幸的是,虚拟机不是一个选项。我真的需要一份2003年没有的项目清单。 – 2008-10-15 13:12:39
而不是依赖于已添加到Excel 2007的对象库中的对象和方法的可能不完整的列表,最好的(mmost可重写)练习总是在可能用于运行的最早版本的Excel中开发码。
不幸的是,我没有这个选项。 – 2008-11-04 04:53:25
我曾经开发出了很多宏2003下,有什么POTA ,,之类的东西找到,迪尔和其他一些不可用什么变化。因此,有些错误回报可以预期,我使用了65000行数到的第一个非空行数行上下工夫....现在更多的行意味着更多的工作要做
一个不同之处,我发现是,子例程必须具有与从功能区调用(在Excel 2007中)不同的特征才能从菜单中调用(在Excel 2003中)。还有,Excel 2003无法识别IRibbonControl并引发编译错误。
要朝着跨版本兼容的工作,我使用条件编译参数,然后检查,在预处理器宏。
例如
#If USINGRIBBON Then
Public Sub CallFromRibbon(control As IRibbonControl)
#Else
Public Sub CallFromRibbon()
#End If
' Code here
End Sub
这并不意味着你必须保存您的外接的一个版本设置为false(对于Excel2003中)的USINGRIBBON标志,另一个与USINGRIBBON标志设置为true(对于Excel2007中),但是这是比维护两个完全独立的代码库要容易得多。
- 1. VBA在Excel:在Excel 2003在2007年
- 2. 将Excel 2007 VBA转换为Excel 2003
- 3. Excel 2003中的VBA编写.. ArrayList的
- 4. VBA Office 2007创建2003 Excel工作表
- 5. 在Excel中的VBA 2003
- 6. 写在Excel nextline 2007
- 7. Excel 2007中的Excel 2003 VBA“排序”问题
- 8. VBA Excel 2007宏在Excel 2002中死亡
- 9. Excel 2003 VBA写入SQL Server 2000 ADO
- 10. 在Excel 2007中安装VBA宏
- 11. VBA在xls文件通过Excel 2007中
- 12. Excel 2003电子表格对象在Excel 2007中消失
- 13. ActiveSheet.AutoFilter.Sort.SortFields.Clear在Excel 2003
- 14. Excel 2003,intermitent VBA错误
- 15. 在Excel 2003中开发的VBA代码
- 16. 在Excel 2003中限制滚动vba
- 17. VB脚本 - 安装Excel 2003和Excel 2007时明确调用Excel 2007
- 18. 在Excel中使用VBA编写宏
- 19. 在VBA中编写公式Excel
- 20. 在Visual Studio中编写Excel VBA代码
- 21. 编写脚本在Excel VBA代码
- 22. 打开excel 2007 excel文件并保存为VBA中的97-2003格式
- 23. 从python 3.x编写excel 2003文件
- 24. VBA Excel 2003/2007:声明,填充和传递锯齿形数组
- 25. 将Excel 2003和2007引用到Autocad-VBA项目中
- 26. 将excel 2003转换为2007或使用VBA最近的版本
- 27. 在VBA Excel中传球变的ByRef 2007
- 28. 在Excel 2007 VBA功能中使用VLOOKUP
- 29. VBA图片在Excel中不显示2007
- 30. 在Microsoft Excel 2007
我已经说服了我的老板让我在ASP.Net页面而不是电子表格中创建它(它将以这种方式与我们的其他Intranet应用程序进行良好的配合),所以从我的角度来看,这个问题现在没有意义。但是,这里的信息对其他人可能仍然有用,所以我将它保持活跃。 – 2008-11-04 04:55:03
真的这个问题是相当有趣的,但不幸的是由于无尽的用例情况,我们可能永远不会完成它。真的没有理由不将虚拟机与Office 2003一起用于开发和测试。 – 2010-10-12 21:29:17