需要帮助修复vba错误' 1004'编辑一段代码后

时间:2015-12-15 18:45:44

标签: excel vba

有些背景,我编写了一段代码,循环遍历目录中的所有工作簿并执行一个函数,该函数还执行另一个函数。这两个函数都经过测试,并且没有任何问题,直到我将它们放入遍历所有工作簿的代码中。 我最初有这个代码并且没有问题:

Set tbl = shtOfErrors.UsedRange
tbl.Offset(2, 0).SpecialCells(2, 23).Select
Selection.Resize(, 3).Select

我试图摆脱原始函数中的所有.select,因为它在作为工作簿循环的一部分被调用时一直存在错误。但现在我在第3行得到了错误1004应用程序定义或对象定义的错误:

Set tbl = shtOfErrors.UsedRange
Set selrng = tbl.Offset(2, 0).SpecialCells(2, 23)
Set seltbl = selrng.Resize(, 3)

1 个答案:

答案 0 :(得分:0)

一个选项是:

Set tbl = shtOfErrors.UsedRange
Set tbl = Intersect(tbl, tbl.Offset(2, 0)).Resize(, 3).SpecialCells(2, 23)

应该做你想做的一切......(未经测试)

另一种选择:

Set tbl = shtOfErrors.Range("$2:$2", Rows(Rows.Count).Address).UsedRange.Resize(, 3).SpecialCells(2, 23)

第三种选择是:

Set tbl = shtOfErrors.UsedRange.Offset(2, 0).UsedRange.Resize(, 3).SpecialCells(2, 23)