2013-02-09 34 views
2

我想檢查用戶模塊中某段代碼中是否有空的excel範圍。 我用下面的代碼檢查vba模塊中的範圍是否爲空

Worksheets(yearsheet).Range("N" & rownum & ":DI").Select 
If Application.WorksheetFunction.CountA(Selection) = 0 Then 
    Exit Sub 
End If 

我得到運行時錯誤1004誰能告訴我什麼錯?

在此先感謝。 PS:rownum是整數變量,年份是字符串變量。這兩個變量都已在代碼的上述部分之前的代碼中正確更新了

回答

2

"N" & rownum & ":DI"不計算爲實際地址,因爲它缺少地址後半部分的行號。另外,您應儘可能避免使用Select語句。

假設的整個範圍是在一排,這會工作:測試

Sub test() 
Dim yearsheet As String 
Dim rownum As Integer 

yearsheet = "Sheet2" 
rownum = 2 
If Application.WorksheetFunction.CountA(Worksheets(yearsheet) _ 
     .Range("N" & rownum & ":DI" & rownum)) = 0 Then 
    Exit Sub 
End If 
End Sub 
+0

謝謝!! 。它的工作.. – Sanket 2013-02-10 03:52:10

0

最好的方式,如果選擇在VBA(不)空:

 
' Tests if a selection of cells exists. 
' @return true or false 
Function isCellSelection() As Boolean 
    Dim r As range 
    isCellSelection = False 
    Set r = Selection.Cells 
    If IsEmpty(r) Then 
     isCellSelection = True 
    End If 
End Function ' isCellSelection 
+0

它在'Selection.Cells'中給出錯誤。 – 2014-08-08 20:05:29