运行时错误13 VBA Excel 2007

在底部代码的年份部分是错误发生的地方。 我已经在一年之后命名了每个工作表,即2010,2011.2012。 我得到一个运行时错误13.我知道我做错了将数据发送到特定的工作表。 任何帮助将大大appriciated。

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作为input!

您可能需要:

 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