簡體   English   中英

運行時錯誤13 VBA Excel 2007

[英]Run Time Error 13 VBA Excel 2007

底部代碼的Year部分是錯誤發生的地方。 我在一年后命名每個工作表,即2010年,2011.2012。 我收到運行時錯誤13.我知道我在將數據發送到特定工作表時出錯了。 任何幫助都會受到極大的關注。

Option Explicit
Dim WrkSheet As Worksheet

Private Sub CommandButton1_Click()
    Application.EnableEvents = False

    Dim ssheet As Workbook
    Dim cellVal1 As String, cellVal2 As String, cellVal3 As String, cellVal4 As String, cellVal5 As String, cellVal6 As String, cellVal7 As String, cellVal8 As String, cellVal9 As String, cellVal10 As String, cellVal11 As String, cellVal12 As String
    Dim cellVal13 As String, cellVal14 As String

    Dim shtCmb As String
    Dim RwLast As Long

    shtCmb = Me.Year.Value
    If shtCmb = "" Then
        MsgBox "Please choose a Year.", vbOKOnly
        Me.Year.SetFocus
    End If

    cellVal1 = Me.Year.Text
    cellVal2 = Me.Reason_RRT_Called.Text
    cellVal3 = Me.Me.Type_Of_Recomendations.Text
    cellVal4 = Me.Documentation_On_Templates.Text
    cellVal5 = Me.MD_Notified.Text
    cellVal6 = Me.Location.Text
    cellVal7 = Me.Code_Rapid_Response.Text
    cellVal8 = Me.Report_Sent_To_QM.Text
    cellVal9 = Me.Vital_Signs_Documneted.Text
    cellVal10 = Me.Assessments_Completed.Text
    cellVal11 = Me.Response_Time.Text
    cellVal12 = Me.Date_Of_Incedent.Text
    cellVal13 = Me.Patients_Name.Text
    cellVal14 = Me.Unit_Location.Text

    RwLast = Worksheets(shtCmb).Range("B" & Worksheets(shtCmb).Rows.Count).End(xlUp).Row

    Worksheets(shtCmb).Range("B" & RwLast + 1).Value = cellVal1
    Worksheets(shtCmb).Range("H" & RwLast + 1).Value = cellVal2
    Worksheets(shtCmb).Range("K" & RwLast + 1).Value = cellVal3
    Worksheets(shtCmb).Range("L" & RwLast + 1).Value = cellVal4
    Worksheets(shtCmb).Range("N" & RwLast + 1).Value = cellVal5
    Worksheets(shtCmb).Range("E" & RwLast + 1).Value = cellVal6
    Worksheets(shtCmb).Range("D" & RwLast + 1).Value = cellVal7
    Worksheets(shtCmb).Range("G" & RwLast + 1).Value = cellVal8
    Worksheets(shtCmb).Range("I" & RwLast + 1).Value = cellVal9
    Worksheets(shtCmb).Range("J" & RwLast + 1).Value = cellVal10
    Worksheets(shtCmb).Range("M" & RwLast + 1).Value = cellVal11
    Worksheets(shtCmb).Range("A" & RwLast + 1).Value = cellVal12
    Worksheets(shtCmb).Range("C" & RwLast + 1).Value = cellVal13
    Worksheets(shtCmb).Range("F" & RwLast + 1).Value = cellVal14

    Application.EnableEvents = True

End Sub

Private Sub optionCancel_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Dim SH As Worksheet
    Dim Entry As Variant

    'Auto date fill text box
    'Date_Of_Incedent.Value = Format(Date, "mm/dd/yyyy")

    'Year(Year(Now)) - Will return the name of the current Year
    For Each SH In ThisWorkbook.Worksheets
        If SH.Name = Year(Year(Now)) Then
            Set WrkSheet = SH
            Exit For
        End If
    Next

    'fill the combo box
    With Me.Year
        For Each Entry In [List1]
            .AddItem Entry
        Next Entry
        .Value = Year(Year(Now))
    End With

    'fill the combo box
    With Me.Reason_RRT_Called
        For Each Entry In [List2]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Type_Of_Recomendations
        For Each Entry In [List3]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Documentation_On_Templates
        For Each Entry In [List4]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.MD_Notified
        For Each Entry In [List5]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Location
        For Each Entry In [List6]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Code_Rapid_Response
        For Each Entry In [List7]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Report_Sent_To_QM
        For Each Entry In [List8]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Vital_Signs_Documneted
        For Each Entry In [List9]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Assessments_Completed
        For Each Entry In [List10]
            .AddItem Entry
        Next Entry
    End With

    'fill the combo box
    With Me.Response_Time
        For Each Entry In [List11]
            .AddItem Entry
        Next Entry
    End With

End Sub
Year(Year(Now()))

將失敗,因為Year()需要Date作為輸入!

你可能需要:

Dim s As String
s = CStr(Year(Now))

接着:

For Each SH In ThisWorkbook.Worksheets
    If SH.Name = s Then
        Set WrkSheet = SH
        Exit For
    End If
Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM