没有在编程方面度过美好的一天。我不明白为什么VBA不能做以下总和。
你能帮忙吗。
我在userform中有两个带日期的字段。我想要的只是减去它们来计算中间的日子
我尝试了两种变体。
ws1.Cells(mRow, 28).Value = TxtRecDate.Value - TxtDOD.Value
ws1.Cells(mRow, 28).Value = CInt(TxtRecDate.Value) - CInt(TxtDOD.Value)
两者都给我运行时错误13不匹配。
你能帮忙吗?
谢谢,
答案 0 :(得分:2)
您需要将文本框中的text
转换为date
:
ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)
如果文字没有正确表示日期,请注意这会导致Runtime Error 13: Type Mismatch
。您可以通过首先测试文本框值来处理此问题:
If IsDate(TxtRecDate) And IsDate(TxtDOD) Then
ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)
Else
MsgBox "Invalid dates entered", vbExclamation + vbOKOnly
End If
答案 1 :(得分:0)
您应该测试两个文本框是否包含有效日期。然后使用DateValue
将String值转换为Date值。
If IsDate(TxtRecDate.Value) And IsDate(TxtDOD.Value) Then
ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)
End If