2017-06-26 72 views
0

看起來像「application.worksheetfunction.CountA(range)= 0」適用於每個人,但我檢查範圍是否爲空。檢查範圍是否爲空使用excel vba

我打開了一個新的excel表,並把E2放在23。這就是我所做的一切。下面是我用來測試該方法的代碼。

Sub test() 
MsgBox Application.WorksheetFunction.CountA(Sheet1.Columns("A:D")) 
MsgBox Application.WorksheetFunction.CountA(Sheet1.Columns("A:E")) 
End Sub 

我得到156而不是0從第一個msgbox和197從第二個msgbox。

任何想法爲什麼?

謝謝。

+2

新的Excel工作表是否爲Sheet1?這是一個全新的工作手冊? – jamheadart

+1

^^並且您的代碼期望工作表具有「Sheet1」的「CodeName」,而不僅僅是「Sheet1」的「Name」。 – YowE3K

+0

您是否有其他Excel文件同時打開?如果是這樣,你將代碼放在哪個模塊中,以及在什麼** VBAProject **中? (左上窗格)。完全關閉Excel並打開一個文件後再試一次 –

回答

0

爲避免此類問題,請不要通過其CodeName(Sheet1)引用工作表。相反,請使用工作表名稱進行參考:

Dim ws As Worksheet 
Set ws = ThisWorkbook.Worksheets("MySheet") 
MsgBox Application.WorksheetFunction.CountA(ws.Columns("A:D"))