我們編寫了一個宏,它生成一系列圖表,然後將它們傳輸到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. 酒吧從1開始而不是0
- 2. 爲什麼MySQL從1開始計數而不是0?
- 3. 爲什麼增量計數從0開始而不是從1開始?
- 4. 使用位置計數節點 - 有時枚舉從0開始而不是1
- 5. Excel VBA宏:直到索引模式正確(從0或1開始)
- 6. 爲什麼inode數字從1開始而不是0?
- 7. 如何在打開宏時打開excel vba代碼打開Userform而不是Thisworkbook?
- 8. 如何使熊貓數據框的列號從1開始,而不是從0開始
- 9. 從位置1開始NSArray不是0
- 10. 如何讓vim使用從1而不是0開始計數的相對行數
- 11. MSChart的X軸開始從-1而不是0
- 12. PHP:更新值從0開始,而不是1
- 13. 在JDBC中,爲什麼準備語句的參數索引從1開始而不是從0開始?
- 14. 爲什麼我的集合決定從0開始而不是1開始?
- 15. Excel:如何從OLE開始宏記錄
- 16. 我想ID從0開始,而是從1
- 17. 如何從源文件中使用宏展開-1而不是REPL
- 18. 試圖獲得嘗試從1開始而不是0的嘗試次數
- 19. 爲什麼從std :: placeholders :: _ 1開始而不是_0開始?
- 20. Retreiving /閱讀excel宏而不打開excel?
- 21. 當我的數字從1開始而不是從零開始時,我該如何模數?
- 22. jQuery計數元素從0開始?
- 23. 如何從Excel VBA宏生成XML?
- 24. Excel的計算行項目,而不是從請求宏
- 25. 使BufferedReader從.txt文件的中間開始而不是開始?
- 26. 與1而不是0
- 27. 如何在Excel VBA宏期間打開從SAP調用的Excel電子表格
- 28. 計數在Excel中使用宏
- 29. 在Excel中停止VBA宏
- 30. 是否有任何編程語言從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