vba 中字符串的内联空检查
Inline null check for string in vba
我正在寻找一种方法在将字符串转换为日期之前检查它是否为空,我想避免的问题是 if-else
因为我必须在单个语句中对多个变量使用它:
Call MyObj.Insert(CInt(Me.ddlFiltroPD), _
CInt(Me.Parent!ddlFiltroEsito), _
CInt(Nz(ddlFiltroPD.Column(1))), _
Nz(txtPuntoDebolezza, ""), _
CInt(Nz(Me.ddlRilevanza, 0)), _
Nz(txtInterventi, ""), _
Nz(txtOwner, ""), _
CDate(txtData1), _
CDate(txtData2), _
CDate(txtData3), _
CDate(txtData4), _
Nz(txtMotivazioneChiusura) _
)
txtData1、txtData2、txtData3 和 txtData4 可以为空,当它们不为空时我必须将其转换为数据
我想创建一个函数来进行转换或使用一些临时变量,但我正在寻找更好的东西
您可以使用这个表达式:
IIf(txtdata1 = vbNullString, "", CDate(txtdata1))
我是这样解决的
Call MyObj.Insert(..., _
txtData1, _
txtData2, _
txtData3, _
txtData4, _
)
在 MyObj.Insert
中,我将参数更改为变量,并使用 Format(txtData1, "YYYYMMDD")
转换参数
我正在寻找一种方法在将字符串转换为日期之前检查它是否为空,我想避免的问题是 if-else
因为我必须在单个语句中对多个变量使用它:
Call MyObj.Insert(CInt(Me.ddlFiltroPD), _
CInt(Me.Parent!ddlFiltroEsito), _
CInt(Nz(ddlFiltroPD.Column(1))), _
Nz(txtPuntoDebolezza, ""), _
CInt(Nz(Me.ddlRilevanza, 0)), _
Nz(txtInterventi, ""), _
Nz(txtOwner, ""), _
CDate(txtData1), _
CDate(txtData2), _
CDate(txtData3), _
CDate(txtData4), _
Nz(txtMotivazioneChiusura) _
)
txtData1、txtData2、txtData3 和 txtData4 可以为空,当它们不为空时我必须将其转换为数据
我想创建一个函数来进行转换或使用一些临时变量,但我正在寻找更好的东西
您可以使用这个表达式:
IIf(txtdata1 = vbNullString, "", CDate(txtdata1))
我是这样解决的
Call MyObj.Insert(..., _
txtData1, _
txtData2, _
txtData3, _
txtData4, _
)
在 MyObj.Insert
中,我将参数更改为变量,并使用 Format(txtData1, "YYYYMMDD")