Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 运行时错误13_Vba_Excel_Runtime - Fatal编程技术网

Vba 运行时错误13

Vba 运行时错误13,vba,excel,runtime,Vba,Excel,Runtime,在编程方面不是很好的一天。我不明白为什么VBA不能做下面的总和 你能帮忙吗 我在一个userform中有两个字段,都带有日期。我只想把它们减去,算出两者之间的天数 我试过这两种不同的方法 ws1.Cells(mRow, 28).Value = TxtRecDate.Value - TxtDOD.Value ws1.Cells(mRow, 28).Value = CInt(TxtRecDate.Value) - CInt(TxtDOD.Value) 两者都给我运行时错误13不匹配 你能帮忙吗 谢

在编程方面不是很好的一天。我不明白为什么VBA不能做下面的总和

你能帮忙吗

我在一个userform中有两个字段,都带有日期。我只想把它们减去,算出两者之间的天数

我试过这两种不同的方法

ws1.Cells(mRow, 28).Value = TxtRecDate.Value - TxtDOD.Value
ws1.Cells(mRow, 28).Value = CInt(TxtRecDate.Value) - CInt(TxtDOD.Value)
两者都给我运行时错误13不匹配

你能帮忙吗


谢谢,

您需要将文本框中的
文本
转换为
日期

    ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)
注意:如果文本不能正确表示日期,这将导致运行时错误13:类型不匹配。您可以通过首先测试文本框值来处理此问题:

    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

您需要将文本框中的
文本
转换为
日期

    ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)
注意:如果文本不能正确表示日期,这将导致运行时错误13:类型不匹配。您可以通过首先测试文本框值来处理此问题:

    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

您应该测试两个文本框是否都包含有效日期。然后使用
DateValue
将字符串值转换为日期值

If IsDate(TxtRecDate.Value) And IsDate(TxtDOD.Value) Then

    ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)

End If

您应该测试两个文本框是否都包含有效日期。然后使用
DateValue
将字符串值转换为日期值

If IsDate(TxtRecDate.Value) And IsDate(TxtDOD.Value) Then

    ws1.Cells(mRow, 28).Value = DateValue(TxtRecDate.Value) - DateValue(TxtDOD.Value)

End If

你的代码放在哪里?以用户的形式?还是普通模块?您需要在
TxtRecDate
TxtDOD.Value
之前添加
Me.
UserFromName.
,将其放置在用户表单中。抱歉,我尝试了使用Me.TxtRecDate.Value-Me.TxtDOD.Value,但这也不起作用。我收到同样的错误,你有日期吗?哪些是实际存储为文本的?日期被输入到用户表单中。例如今天-昨天应该=1。在要输入的字段中,它们的格式为(Me.txtRecdate.value,“DD/MM/YYYY”),对于Me.txtdod.valueTry
ws1.Cells(mRow,28)。value=CDbl(Me.txtRecdate.value)-CDbl(Me.txtdod.value)
您的代码放在哪里?以用户的形式?还是普通模块?您需要在
TxtRecDate
TxtDOD.Value
之前添加
Me.
UserFromName.
,将其放置在用户表单中。抱歉,我尝试了使用Me.TxtRecDate.Value-Me.TxtDOD.Value,但这也不起作用。我收到同样的错误,你有日期吗?哪些是实际存储为文本的?日期被输入到用户表单中。例如今天-昨天应该=1。在要输入的字段中,它们的格式为(Me.txtRecdate.value,“DD/MM/YYYY”),对于Me.txtdod.valueTry
ws1.Cells(mRow,28)。value=CDbl(Me.txtRecdate.value)-CDbl(Me.txtdod.value)