gpt4 book ai didi

excel - 如何在Excel宏中使VBA从0而不是1开始计数

转载 作者:行者123 更新时间:2023-12-02 21:35:59 25 4
gpt4 key购买 nike

我们编写了一个宏,可以生成大量图表,然后将它们传输到 Word。当访问如下形状时,这在 Excel 2007 中按预期工作:Shapes(0)...但在 Excel 2010 中我们不得不说:Shapes(1)。有没有办法告诉Excel从0开始计数?

最佳答案

这是一些聪明的 Microsoft 工程师决定让 VB 集合索引从 1 开始的一个后遗症。我认为这是 VB4 设计的时候。

理由是索引从 1 到 N 而不是 0 到 N-1 “更容易”。

因此,包括 Excel 在内的许多 COM 对象模型都遵循此模型,因此工作表、形状等集合都从 1 到 N 进行索引。

您声称 Shapes(0) 在 Excel 2007 中按预期工作,这一点令我感到惊讶。在 Excel 2003 中肯定不行,而且这一点似乎不太可能发生改变。

更新

我已经在 Excel 2007 中对此进行了测试,Shapes(0) 确实引用了集合中的第一个 Shape - 就我所知与 Shapes(1) 相同。这是 Excel 2003 和 Excel 2007 之间的一个更改,我找不到任何相关信息 - 我怀疑这是 Excel 2007 中的一个错误。

根据您的说法,Excel 2010 似乎已恢复到与 Excel 2003 相同的行为(即 Excel 2007 错误已得到修复)。如果您希望代码适用于所有版本的 Excel,请使用从 1 到 N 的索引号。

关于excel - 如何在Excel宏中使VBA从0而不是1开始计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com