2015-08-25 3 views
1

Я абсолютно ненавижу объект диапазона. Как он читает ссылки на ячейки? В приведенном ниже коде я пытаюсь выполнить поиск последнего занятого столбца на листе. Итак, я начинаю из колонны 1000 и вниз в колонну 1:Ссылка на диапазон с переменными

EndCol = 1001: Do 
    EndCol = EndCol - 1 
    Set rScanArea = .range(.Cells(1, EndCol), .Cells(1048576, EndCol)) 
Loop While WorksheetFunction.CountA(rScanArea) = 0 and EndCol > 0 

Это не сработало, но он сделал после того, как я добавил «.Address()» после того, как мои ссылки на ячейки. Поэтому, я думаю, в моем исходном коде vba читал значения ячеек. Однако в прошлом были случаи, когда атрибут адреса не нужен. Например, следующий работал:

.Cells(i, 4).Hyperlinks.Add Range(.Cells(i, 4), .Cells(i, 4)), strLink 

ответ

2

Я, например, не имеют настройки диапазона с помощью метода

set rngRange = Range(cells(1,1), cells(1,5)) 

Есть несколько способов, чтобы установить диапазоны ошибок. Если вы хотите использовать синтаксис set rngRange = Range("A1:A2"), вы должны использовать addresses, которые являются строками.

Вы также можете установить диапазон диапазонов. Это использует адреса;

set biggerRange = (rng1.address & ":" & rng2.address) 

Вы также можете обратиться к диапазонам с квадратными скобками, но это не рекомендуется.

Кроме того, в стороне от вопроса, ваш способ найти последний столбец не так надежен. Я предлагаю прочитать это Excel VBA- Finding the last column with data для лучших способов.

+0

Хорошо, TY. Я не понимал, что для работы есть встроенная функция. –

Смежные вопросы