我使用Excel for Mac 2011,並且我在一張表中有幾個複選框。我想他們用下面的代碼自動完成:ActiveSheet vs. WorkSheet
Private Sub CheckBox12_Click()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws
If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then
.Range("CK1").EntireColumn.Hidden = False
Else
.Range("CK1").EntireColumn.Hidden = True
End If
End With
End Sub
此代碼給我的錯誤: 運行時錯誤445對象不支持此操作。
但是,如果刪除WS,只是做
Private Sub CheckBox12_Click()
With ActiveSheet
If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then
.Range("CK1").EntireColumn.Hidden = False
Else
.Range("CK1").EntireColumn.Hidden = True
End If
End With
End Sub
這一切正常。
這裏的交易是什麼?我知道我可以使用ActiveSheet,但我總是喜歡先設置它= ws,因爲它提供了屬性/方法的下拉列表。
我試過你的代碼的複選框部分,它的工作,無論它是activesheet或工作表。這個問題似乎在別處。注意:我正在使用Windows操作系統。 – hnk
您剛剛宣佈Dim ws爲工作表,但未將其分配給實際工作表。快速回答您的問題:使用第二個代碼片段。問候, –
謝謝你們。亞歷克斯我說聲明後設置ws = ActiveSheet,是不夠的? – Yunfei