2017-08-15 278 views
-2

我使用下面的代码,以确定工作表上的下一个空行:使用VBA worksheetfunction不激活工作表

emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1 

然而,我注意到,它只有当页面我想用作品被激活。我曾尝试使用以下语句:

With MyWorksheet 
emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1 
End With 

但是,在我输入完成后几乎意识到这不是with的正确用法。如何在不激活工作表的情况下执行工作表功能?我正在遍历许多工作表,并且不希望每个工作表都激活。谢谢!

+2

您错过了将'Range'关联到工作表对象的前导期:'WorksheetFunction.CountA(.Range(“B:B”))+ 1'如果可能的话,这(使用CountA)是不可靠的在你的数据中有空单元虽然... –

+0

'Set MyWorksheet = Worksheets(“Name”)''而不是'Set MyWorksheet = ActiveWorksheet' – UGP

+0

另请参阅[这里](https://stackoverflow.com/questions/10714251/how -to-avoid-using-select-in-excel-vba) – UGP

回答

1

由于TimWilliams在他的评论中说,我刚刚收到

range 

增加一个周期,使其

.range 

和它的作品。

相关问题