2013-03-11 56 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