2017-02-12 58 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有你在测试我的回答上面的代码?任何反馈 ? –