2016-05-13 2 views
1

Я работаю с файлом извлечения базы данных в формате xlsx. Структура выглядит так:Excel vba находит диапазон, но не может его активировать

ID  DC1  DC2 ............ DCn 
1  data  data ........... data 
2  data  data ........... data 
3  data  data ........... data 

Я использую этот код, чтобы найти и активировать идентификационную ячейку.

Set foundSourceRange = Sheets(sourceSheet).Cells.Find(What:=sourceColumn, LookIn:=xlValues, LookAt:=xlWhole) 
foundSourceRange.Activate 

Поиск дает запрашиваемую ячейку, но активирует броски как ошибку.

Runtime Error 1004 
Activate method of Range class failed. 

Если я иду в файл извлечений и редактировать заголовки (перепечатывать их вручную) то мой код работает, как ожидалось. Я уже пытался изменить формат файла экстракта на csv, но он дает ту же ошибку. Есть ли что-нибудь, что я могу сделать с кодом, чтобы решить эту проблему?

ответ

2

Вам нужно активировать лист первого:

Set foundSourceRange = Sheets(sourceSheet).Cells.Find(What:=sourceColumn, LookIn:=xlValues, LookAt:=xlWhole) 
Sheets(sourceSheet).Activate 
foundSourceRange.Activate 

Вы можете только .Activate диапазон на ActiveSheet объекта.

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