我試圖寫一個細胞時,一個複選框使用此子運行時錯誤「1004」:對象「_Worksheet」法「範圍」失敗
Sub CheckBox7_Click()
If ws1.Shapes("Check Box 7").OLEFormat.Object.Value = 1 Then
ws2.Range(comment).Offset(0, 2).Value = "1"
Else
ws2.Range(comment).Offset(0, 2).Value = "0"
End If
End Sub
標記,但如果我只是打開然後單擊複選框我得到運行時錯誤'1004':對象'_worksheet'的方法'範圍'失敗錯誤。
我定義的變量在模塊的頂部:
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim comment As String
Dim rown As Integer
我設置的變量打開工作簿時:
Private Sub Workbook_Open()
rown = 3
comment = "F" & rown
Set ws1 = ThisWorkbook.Sheets("Rating test")
Set ws2 = ThisWorkbook.Sheets("Comments test")
End Sub
什麼奇怪的是我,如果我先按下按鈕與模塊中的以下代碼,我不會再收到錯誤,即使它與我放入Workbook_open事件中的代碼相同:
Sub First_Comment()
Set ws1 = ThisWorkbook.Sheets("Rating test")
Set ws2 = ThisWorkbook.Sheets("Comments test")
rown = 3
comment = "F" & rown
End Sub
感謝您的幫助,我是VBA新手!
你在哪裏定義了'Workbook_open'? –
您確定Workbook_Open Sub運行?如果確實如此,則必須位於「ThisWorkbook」(「Microsoft Excel Objects」下),並且所有其他代碼也必須位於此處。 – EngJon
是的WOrkbook_Open在「ThisWorkbook」(在「Microsoft Excel Objects」下)中定義。另一個代碼位於同一VBA項目下的「模塊」中的Module1中。我也確信Workbook_Open Sub會運行,因爲當我向workbook_open添加「msgbox comment」時,它會向我顯示帶有「F3」的msgbox – Mustika