有在你的代碼
不合格範圍引用參考ActiveSheet
severla錯誤。所以
Set r = Sheets("Sheet1").Range(Cells(1, 1), Cells(27, 27))
如果Sheet1
未處於活動狀態,將會報錯。
r.Select
如果Sheet1
未處於活動狀態,將會報錯。
select_cells (r)
括號內的內容有誤。使用
select_cells r
a.Select
在私人小組如果Sheet1
不活躍就會報錯。
下面是一個修改的版本
Sub main()
Dim r As Range
With Sheets("Sheet1")
Set r = .Range(.Cells(1, 1), .Cells(27, 27))
End With
Debug.Print r.Address ' for diagnostic purposes
select_cells r
End Sub
Private Sub select_cells(a As Range)
' Activate the worksheet first, so you can select a range on it
a.Worksheet.Select
a.Select
End Sub
註上括號參數
當Sub
或Function
參數是一個非對象變量,包圍該參數將覆蓋ByRef
/ByVal
清晰度並通過參數ByVal
當Sub
或Function
參數是一個對象變量,包圍所述參數將導致一個缺省的屬性來被傳遞到Sub
/Function
。在OP的情況下,這是r.Value
,這導致類型錯配。
嘗試在'select_cells'前面調用'''調用select_cells(r)'在我的本地測試中工作 – tospig 2014-11-21 04:37:54