我们编写了一个宏,它生成一系列图表,然后将它们传输到Word。在Excel 2007中,按照预期的方式工作时,像这样访问形状: Shapes(0)...但在Excel 2010中,我们必须说:Shapes(1)。有没有办法告诉Excel从0开始计数?如何在Excel宏中使VBA从0开始计数而不是1
2
A
回答
4
这是由一位明亮的微软工程师决定使VB集合索引从1开始的宿醉。我认为这是VB4的设计时。
其理由是让索引从1运行到N而不是从0运行到N-1更容易。
其结果是,许多COM对象模型包括Excel遵循这一模式,让喜欢收藏表,形状等从1所有索引到N.
我在你的说法,形状(0)工作惊讶正如Excel 2007中的预期一样。它当然不在Excel 2003中,而且似乎不太可能会改变。
我在Excel 2007和形状测试此更新(0)确实引用第一形状集合中 - 一样形状(1)据我可以看到。这是Excel 2003和Excel 2007之间的变化,我找不到任何信息 - 我怀疑这是Excel 2007中的一个错误。
从您所说的话来看,它听起来像Excel 2010已恢复到相同的行为如Excel 2003(即Excel 2007错误已被修复)。如果你想要的代码适用于所有版本的Excel,请使用从1到N的索引号。
0
声音 - 从这里显示的简短统计数据 - 就像Excel 2010的错误。
通常,为Excel 2007编写的所有脚本都应该在Excel 2010中保持不变。
+0
错误与否,只要我将它从零索引更改为1索引就会工作。 – noocyte 2011-03-22 07:20:48
相关问题
- 1. 从范围开始的Excel VBA数组从-1开始而不是0
- 2. 酒吧从1开始而不是0
- 3. 从1开始代码而不是0?
- 4. 为什么MySQL从1开始计数而不是0?
- 5. 为什么增量计数从0开始而不是从1开始?
- 6. 如何使分页从1而不是0开始
- 7. 为什么应该从0开始而不是从1开始?
- 8. PHP:如何让我的计数器从2开始计数而不是从0
- 9. CFCHART - 如何获得Y轴从1开始,而不是0
- 10. 使用位置计数节点 - 有时枚举从0开始而不是1
- 11. Excel VBA宏:直到索引模式正确(从0或1开始)
- 12. 为什么inode数字从1开始而不是0?
- 13. 从1而不是0开始json_encode数字键
- 14. 如何在1而不是0处指定x轴的开始
- 15. 如何在打开宏时打开excel vba代码打开Userform而不是Thisworkbook?
- 16. 如何使熊猫数据框的列号从1开始,而不是从0开始
- 17. 获取指数开始[1]而不是[0]使用jQuery
- 18. 从位置1开始NSArray不是0
- 19. 如何让vim使用从1而不是0开始计数的相对行数
- 20. 显示计数为-1,而不是0
- 21. MSChart的X轴开始从-1而不是0
- 22. PHP:更新值从0开始,而不是1
- 23. 猪:排名从索引0开始,而不是1?
- 24. 如何从1而不是0
- 25. 在JDBC中,为什么准备语句的参数索引从1开始而不是从0开始?
- 26. 为什么我的集合决定从0开始而不是1开始?
- 27. Excel:如何从OLE开始宏记录
- 28. ORDER BY子句如何将记录从1开始排序而不是0
- 29. 如何配置从页面1开始的Spring引导分页,而不是0
- 30. 我想ID从0开始,而是从1
那么,它确实在Excel 2007中有效。 :) – noocyte 2011-03-22 07:26:04
我们结束了版本测试,并为当前版本做了“正确的事情”...跛脚,但只有及时的解决方案,我们可以找到... – noocyte 2011-05-06 08:38:03
@noocyte - “当前版本的正确的东西” - if我的分析是正确的,我希望你可以在所有的Excel版本中使用索引1到N,包括Excel 2007.所以你不需要测试版本。 – Joe 2011-05-06 09:37:25