Microsoft Excel对象的VBA错误13

时间:2018-08-22 17:27:27

标签: excel vba

因此,此错误13从今天开始。我有一个设置当前年份的按钮。该按钮是一个ActiveX按钮(出于组织原因,我喜欢在“表单”按钮上使用它。) 这是按钮的代码。

Private Sub CurrentYear_Click()
        Call StartData
        Yr = Year(Now)
        Cells(1, 2).Value = Yr
        Call UpdateSheets
End Sub

StartData是我用于设置的功能,例如public Yr As IntegerYr = Cells(1, 2).Value。这样做是因为,如果首先按下此按钮或其他按钮,则需要设置其他数据。现在,我在这行Yr = Year(Now)上遇到了错误,我要指出的是,这两个变量(在ActiveX滚动条上)都不会出现问题。

Private Sub YearChange_SpinDown()
    Call StartData
    Yr = Yr - 1
    Call UpdateSheets
End Sub
Private Sub YearChange_SpinUp()
    Call StartData
    Yr = Yr + 1
    Call UpdateSheets
End Sub

现在这是曲折,我将顶部函数放在模块中,然后将其运行,然后工作,我打开了一个新的工作簿对其进行测试,然后开始工作。因此,尽管我有解决方法,但我会知道我是否做过什么,是否可以放回去。

带有StartData的模块

Public Yr As Integer
Public MonthNub As Integer
Public MonthNm As String
Public MonNam As String
Public LastMonthNub As Integer
Public LastMonthName As String
Public NextMonthNub As Integer
Public NextMonthName As String
Public WkN As Integer
Public WkDy As Integer
Public EndD As Integer
Public LEnD As Integer
Public MonthSheet As Worksheet
Public Week1 As Worksheet
Public Week2 As Worksheet
Public Week3 As Worksheet
Public Week4 As Worksheet
Public Week5 As Worksheet
Public Week6 As Worksheet
Public Sub StartData()
    Yr = Cells(1, 2).Value
    MonthNm = Cells(1, 1).Value
    MonthNub = Month(DateValue(MonthNm & " 01 " & Yr))
    MonNam = MonthName(MonthNub, True)

    Set MonthSheet = Worksheets(2)
    Set Week1 = Worksheets(3)
    Set Week2 = Worksheets(4)
    Set Week3 = Worksheets(5)
    Set Week4 = Worksheets(6)
    Set Week5 = Worksheets(7)
    Set Week6 = Worksheets(8)

    If MonthNub - 1 < 1 Then
        LastMonthNub = 12
    Else
        LastMonthNub = MonthNub - 1
    End If
    LastMonthName = MonthName(LastMonthNub, True)

    If MonthNub + 1 > 12 Then
        NextMonthNub = 1
    Else
        NextMonthNub = MonthNub + 1
    End If
    NextMonthName = MonthName(NextMonthNub, True)
End Sub

0 个答案:

没有答案