2013-03-11 3 views
0

Я попытался найти решение, но не могу найти его.Функция VBA HasNextCell

У меня есть список продуктов, и каждый продукт имеет много частей. Есть ли в VBA функция HasNext, чтобы узнать, есть ли больше деталей для продукта? Например, для куриного гамбургера, я хочу выделить все части, поместить их в массив и отобразить на другом листе.

Я не могу жестко закодировать массив, потому что клиент добавит больше продуктов в будущем. Может быть, 15, 20, 23 части и т. Д. Есть ли функция HasNext, чтобы получить значение в следующем столбце и добавить его в массив?

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

Вы все же можете разместить ссылку на свое изображение. – Passerby

+0

О, прости! Не знал этого. Но пример shld достаточно. < – MysteryR

+0

Почему бы не использовать do ... while loop in VBA? Простой цикл, пока вы не достигнете неотъемлемой колонки, а затем прервите ее. –

ответ

0

Вы можете использовать Range.End свойство для определения, как "длинный" заголовок строка:

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

P.S. Интересно, почему MSDN ссылается на него как на «свойство», а не на «метод» ...

+0

Здравствуйте, возможно ли вам объяснить, что означает «col = Range (« A1 »). End (xlToRight) .Column« mean? Это размер массива или ??? А также, "Ячейки (1, col)" ??? – MysteryR

+0

@MysteryR Вы можете проверить документ MSDN, который я связал в своем ответе, для значения ['Range.End'] (http://msdn.microsoft.com/en-us/library/aa214585%28v=office.11 % 29.aspx); Для «Ячейки» проверьте [эту ссылку] (http://msdn.microsoft.com/en-us/library/aa174290 (v = office.11) .aspx). – Passerby