2017-02-12 57 views
0

這是我的第一篇文章。我只是寫了一個簡單的按鈕來計算我在Excel字符表中的體驗,而且我對此很新,但我似乎無法發現這段代碼有任何問題。它不斷返回第2行的「Compile Error:Object required」,我看過的所有內容都沒有幫助。我曾經有過幾次錯誤,但是這是一個問題,我如何聲明我的變量(我習慣於python) 如果任何人都可以看看代碼,也許給我一些提示,那會很多讚賞。Private Private

Option Explicit 
Private Sub addXP_Click() 
    Dim addXP As Integer 
    Dim oldXP As Integer 
    Dim newXP As Integer 
    Dim Lv As Integer 

    Set addXP = Sheet1.Range("G4").Value 
    Set oldXP = Sheet1.Range("A4").Value 

    Set newXP = addXP + oldXP 

    Set Lv = Sheet2.Range("G4").Value 

    Sheet1.Range("G3").ClearContents 

    If newXP >= (Lv + 1) * 1000 Then 
     Range(Sheet1!A4).ClearContents 
     Set Sheet2.Range("G4").Value = Sheet2.Range("G4").Value + 1 

    End If 
End Sub 

回答

1

Whun使用VBA,並試圖將值賦給Integer類型的變量,你不前需要Set,只需使用addXP = Sheet1.Range("G4").Value

您可能會考慮使用Long而不是Integer

注意:使用使用板材的CodeName,而不一定是名稱爲「工作表Sheet1」工作表Sheet1.Range("G4").Value手段。

嘗試下面的代碼:

Option Explicit 

Private Sub addXP_Click() 

    Dim addXP As Long 
    Dim oldXP As Long 
    Dim newXP As Long 
    Dim Lv As Long 

    addXP = Sheet1.Range("G4").Value 
    oldXP = Sheet1.Range("A4").Value 

    newXP = addXP + oldXP 

    Lv = Sheet2.Range("G4").Value 

    Sheet1.Range("G3").ClearContents 

    If newXP >= (Lv + 1) * 1000 Then 
     Sheet1.Range("A4").ClearContents 
     Sheet2.Range("G4").Value = Sheet2.Range("G4").Value + 1 
    End If 

End Sub 
+0

@Ethan Seitter有你在測試我的回答上面的代碼?任何反饋 ? –