反转工作表中的对象数组

时间:2015-10-06 19:44:48

标签: vba vbscript jscript qlikview

我在vbscript中编写一个宏来将对象从Qlikview中的工作表导出到ppt。在一张纸上,我在一张纸上有一些对象,但是当我提取到ppt时,它们的ID与它们的顺序相反。假设对象id是一张CH1,CH2,CH3 ..在我读它们的代码中,它们从CH3,CH2,CH1开始向后。我必须将每个对象放在ppt的特定位置,所以需要阅读他们的顺序正确。我使用以下代码:

set s=ActiveDocument.ActiveSheet
charts=s.GetSheetObjects

Set PPSlide = PPPres.Slides(pptiterno)
for i=lbound(charts) to ubound(charts)
    msgbox charts(i).getobjectid

如果在工作表中对象来自CH57 - CH67,则在代码中它们为CH67-CH57。但我希望它们来自CH57 - CH67。我只是试图扭转循环:

for i=ubound(charts) to lbound(charts)

但这不起作用。有人可以帮我扭转这个对象数组。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

正如评论中所述,vba在For循环中默认为1的正向步骤。要退一步,必须告诉vba倒退。

for i=ubound(charts) to lbound(charts) Step -1

正整数是向前(1,2,3),负向是向后(10,9,8)。步骤可以是倍数;所以Step 2是(1,3,5)。

这不适用于For Each循环。

可以找到For Each循环的好方法here.