将变量设置为活动工作簿时出错

时间:2014-10-24 22:12:39

标签: excel vba excel-vba

我有一行代码似乎无论如何编写都会产生错误。 在这种情况下:

Set Wbk = ActiveWorkbook

Wbk.Sht.Cells(Rw, 1) <> ""

我收到错误438

如果我将最后一行更改为

Workbooks(WbName).Sht.Cells(Rw, 1) <> ""

其中WbName是活动工作簿名称,我收到错误9。

如果我开始废弃工作簿,只需设置为工作表的Sht即可。

1 个答案:

答案 0 :(得分:1)

This link should tell you a lot of things
至于你的问题,让我们详细说明tigeravatar的评论。

如果您将工作簿设置为:

Set Wbk = Activeworkbook

你的工作表是这样的:

Set Sht = Activeworkbook.Sheets("Sheet1")

这两个变量彼此独立 正如tigeravatar所说,你不能链接这样的变量 或者简单地说,这违反了 Excel对象层次结构 有时你需要在引用另一个对象时使用变量 您可以尝试通过Sht

访问Wbk
If Wbk.Sheets(Sht.Name).Cells(Rw, 1) <> "" Then

或者如果您想使用Sht访问工作簿:

Sht.Parent.Sheets("Sheet1").Cells(Rw, 1) <> ""

或类似的东西:

Sht.Parent.Parent.Worksbooks(Wbk.Name).Sheets(Sht.Name).Cells(Rw, 1) <> ""