对象需要私人小组

这是我在此的头一篇博文。 我只是写一个简单的button来计算我的经验,在Excel字符表,我很新,但我似乎无法find这段代码有任何问题。 它不断的在第2行返回一个“Compile Error:Object required”,我看过的所有东西都没有帮助。 我曾经有过几次错误,但这是一个问题,我是如何声明我的variables(我习惯了python)如果任何人都可以看看代码,也许给我一些提示,那将是非常感激。

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 

如果使用VBA,并试图给Integertypes的variables赋值,则不需要Set ,只需使用addXP = Sheet1.Range("G4").Value

您可以考虑使用Long而不是Integer

注意 :使用Sheet1.Range("G4").Value意味着使用工作表的CodeName ,而不一定是名称为“Sheet1”的工作表。

试试下面的代码:

 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