[英]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.