我已经为这个问题困扰了几天了:
“运行时错误'13':类型不匹配”
当我尝试比较日期时。我查了一下自己的问题,看是否有人遇到了同样的问题,并找到了这个问题。我试过实施该问题的解决方案,但是没有运气。
我正在使用一种名为“日历”的用户窗体,该窗体将日期保留在用户可以编辑的相关文本框上的标签中,并将注释放入其中,如下所示。
我将笔记保存到工作表的B列中,并将笔记的日期保存在A列中。
现在,我试图通过比较日期从工作表中提取注释并将它们放入文本框中,这就是我遇到的问题。当我比较日期时,我拉标签标题并将其另存为日期curDate
,并拉出工作表日期并将其另存为wsDate
。我最初在if语句(现在已注释掉)中有一个消息框,以查看代码是否正在运行..是这样的。它将一直运行到第一个匹配项,然后给出运行时错误。
Dim ws As Worksheet
Dim lrow As Integer 'last row
Dim row As Integer 'used for looping through rows
Dim wsDate As Date 'worksheet date
Dim curDate As Date 'label date
Dim i As Integer
Set ws = Sheets("Hidden Information")
lrow = ws.Range("A" & ws.Rows.Count).End(xlUp).row
With ws 'Hidden Information worksheet
For i = 1 To 38 'number of labels
For row = 2 To lrow 'runs til the last row on the worksheet
wsDate = DateSerial(Year(.Cells(row, 1).Value), _
Month(.Cells(row, 1).Value), Day(.Cells(row, 1).Value))
curDate = DateSerial(Year(Controls("Label" & i).Caption), _
Month(Controls("Label" & i).Caption), Day(Controls("Label" & i).Caption))
If wsDate = curDate Then Controls("TextBox" & i).Text = vbNewLine & _
vbNewLine & .Cells(row, 2).Value 'MsgBox "it's a match!"
Next row
Next i
End With
我对代码进行了几次修改,并尝试以其他方式保存日期,例如,
temp = CDate(.Cells(row, 1).Value)
wsDate = Format(temp, "mm/dd/yy")
temp = CDate(Controls("Label" & i).Caption)
curDate = Format(temp, "mm/dd/yy")
但这有相同的问题:将一直运行到第一个匹配项,然后给出运行时错误。
我觉得解决方案是显而易见的,因为我已经盯着这几天了……
如果有任何需要澄清的地方,请告诉我。
确保使用调试器检查错误发生的位置。
从注释中可以看出,您的错误是在currDate = ...处,您似乎可以通过更正代码的迭代范围来解决此问题。
存在此评论是为了结束在评论部分回答的问题,以免让问题持续存在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句