2010-11-16 10 views
0

У меня есть Excel VBA sub, который (между прочим) вставляет формулу поиска в некоторые ячейки. Формула поиска в настоящее время имеет видExcel VBA: узнать размер внешней таблицы поиска

LOOKUP(RC5,lookup.xlsx!Item,lookup.xlsx!R2C:R559C) 

, но размер таблицы поиска изменится. Есть ли хороший способ найти размер таблицы поиска, то есть последнюю строку?

В крайнем случае, я полагаю, я мог бы открыть файл подстановок (что команда для этого?) И сделать

Windows("lookup.xlsx").Activate 
last = Range("a65536").End(xlUp).Row  
Windows("whatever.xlsx").Activate 

, но я не уверен, что есть лучший путь.

ответ

1

Поиск последней использованной ячейки имеет плохую репутацию в Excel AFAIK. См. Например, this, хотя немного устаревший. Если вы можете, просто обязательно вставьте значение EOF в последнюю использованную строку и сканируйте ее.

Редактировать

Запомнить:

  • Нулевое значение (или пространства), могут служить также в качестве флага EOF. Не забудьте быть последовательным.
  • Вы можете всегда включать полные столбцы в диапазон поиска, и excel позаботится о конце (если в вашем диапазоне больше нет использованных ячеек. Как в = LOOKUP (A1, C: C, D: D)
+0

Итак, лучший способ открыть файл Excel? – Charles

+0

У вас нет шансов на тег EOF, у других будет файл, о котором идет речь, и я могу только надеяться, что листок останется разумным. – Charles

+0

@Charles See edit –

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