2013-03-11 57 views
0

我试过寻找解决方案,但无法找到它。VBA HasNextCell功能

我有一个产品清单,每个产品都有很多部分。 VBA中是否有HasNext功能来查看产品是否有更多零件?例如,对于鸡肉汉堡,我想挑选出所有的部分,把它们放在一个数组中,并将它显示在另一个表中。

我无法对阵列进行硬编码,因为客户端未来会添加更多产品。可能有15,20,23个零件等等。是否有一个HasNext函数来获取下一列中的值并将其添加到数组中?

Product  | Part 1 | Part 2 | Part 3 
Chicken Burger | Veggie | Bun | Patty 
+0

您仍然可以发布链接到您的图像。 – Passerby 2013-03-11 09:24:49

+0

对不起!不知道。但是示例shld就足够了。< – MysteryR 2013-03-11 09:25:55

+0

为什么不在VBA中使用do ... while循环? 只需循环,直到到达非零部件列然后中止。 – 2013-03-11 09:35:21

回答

0

可以使用Range.End属性来检测怎么 “长” 的称号行:

Dim col 
col=Range("A1").End(xlToRight).Column 
For i = 1 to col 
    If Cells(1, col).Value <> "" Then 
    '... 
End 

附:我想知道为什么MSDN将其称为“财产”而不是“方法”...

+0

你好,是否有可能解释“col = Range(”A1“)。End(xlToRight).Column”是什么意思?是数组大小还是? 而且,“细胞(1,col)”? – MysteryR 2013-03-11 09:56:24

+0

@MysteryR你可以查看我在['Range.End']的回答中链接的MSDN文档(http://msdn.microsoft.com/en-us/library/aa214585%28v=office.11 %29.aspx);对于'Cells',请查看[此链接](http://msdn.microsoft.com/zh-cn/library/aa174290(v = office.11​​).aspx)。 – Passerby 2013-03-11 10:04:01