Excel 2010,来自不同工作簿的VBA无法返回IsEmpty值

时间:2015-06-05 15:02:48

标签: excel-vba excel-2010 vba excel

如果Cell(1,2)为空,则下面的代码应该删除一行。当在包含代码的工作簿中运行时,它会准确地返回IsEmpty函数。从另一个工作簿中的ActiveSheet运行时,它不会返回IsEmpty函数。有解决方案吗?

Public Sub formatSheet()
Dim test As Boolean
test = IsEmpty(ActiveSheet.Cells(1, 2))
'Removes header lines
Do Until test = False
    Rows("1:1").Delete
    test = IsEmpty(ActiveSheet.Cells(1, 2))
Loop
End Sub

2 个答案:

答案 0 :(得分:0)

您需要激活要从中删除行的工作簿和工作表:

How do i activate a specific workbook and a specific sheet?

希望链接有帮助!

答案 1 :(得分:0)

您无需激活要运行的电子表格,但您需要参考工作表和工作簿。要在不创建对象和关联指针的情况下执行此操作,请尝试以下代码:

    test = IsEmpty(Workbook("NameOfWorkBookYouWishToCheck").Sheets("NameOfSheetYouWishToCheck").Cells(1, 2))