Excel vba找到一个范围但无法激活它

时间:2016-05-13 10:11:58

标签: excel-vba find range vba excel

我正在使用xlsx格式的数据库提取文件。结构看起来像

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

我使用此代码查找并激活ID单元格。

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

Find提供所请求的单元格,但Activate throws as error。

Runtime Error 1004
Activate method of Range class failed.

如果我转到提取文件并编辑标题(手动重新输入) 然后我的代码按预期工作。我已经尝试将提取文件格式更改为csv但它给出了相同的错误。我能用代码解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要先激活工作表:

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

.Activate对象上只能ActiveSheet一个范围。