在VBA中使用工作表函数而不激活工作表
我使用以下代码确定工作表上的下一个空行:在VBA中使用工作表函数而不激活工作表,vba,excel,Vba,Excel,我使用以下代码确定工作表上的下一个空行: emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1 然而,我注意到它只在我想要使用的页面被激活时才起作用。我尝试使用with语句,如下所示: With MyWorksheet emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1 End With 但我几乎一打完就意识到这不是with的正确用法。如何在不激活工作表的情况下执行工作表功能?我正在
emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1
然而,我注意到它只在我想要使用的页面被激活时才起作用。我尝试使用with语句,如下所示:
With MyWorksheet
emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1
End With
但我几乎一打完就意识到这不是with的正确用法。如何在不激活工作表的情况下执行工作表功能?我正在循环浏览许多工作表,不希望每个工作表都被激活。谢谢 正如蒂姆·威廉姆斯(TimWilliams)在评论中所说,我只需要在前面加上一个句号
range
成功
.range
它是有效的。您缺少将
范围
与工作表对象关联的前导周期:工作表函数.CountA(.Range(“B:B”)+1
如果您的数据中可能有空单元格,那么这(使用CountA)是不可靠的,尽管…设置我的工作表=工作表(“名称”)
而不是设置MyWorksheet=ActiveWorksheet
另请参见@TimWilliams谢谢!我早该想到这一点。@UGP我已经设置了我的工作表=工作表(“名称”)