运行时错误13 VBA Excel 2007
代码底部的年份部分是错误发生的地方。我以一年为单位命名了每个工作表,即2010年、2011年和2012年。我得到一个运行时错误13。我知道我在将数据发送到特定工作表时出错。任何帮助都将非常感激运行时错误13 VBA Excel 2007,vba,excel,Vba,Excel,代码底部的年份部分是错误发生的地方。我以一年为单位命名了每个工作表,即2010年、2011年和2012年。我得到一个运行时错误13。我知道我在将数据发送到特定工作表时出错。任何帮助都将非常感激 Option Explicit Dim WrkSheet As Worksheet Private Sub CommandButton1_Click() Application.EnableEvents = False Dim ssheet As Workbook Dim ce
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()需要一个日期作为输入
您可能需要:
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
我的错误出现在'Year(Year(Now))-将返回此工作簿中每个SH的当前年份名称。如果SH.name=Year(Year(Now)),则工作表将WrkSheet=SH Exit设置为End IfThanks,效果很好!!你能帮我解决另一个问题吗?新的要求是将组合框替换为允许多个选择并输入单个单元格的列表框。我说的是我。我非常感谢你打电话求助的原因。很抱歉…………用户表单不是我的强项…………如果没有人回复,请打开一个新帖子。
For Each SH In ThisWorkbook.Worksheets
If SH.Name = s Then
Set WrkSheet = SH
Exit For
End If
Next