在vba中对字符串进行内联空值检查

时间:2015-07-21 09:37:22

标签: string vba null

iam搜索一种方法来检查字符串是否为空,然后将其转换为日期,问题是我想避免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可以为null,我必须在它们不为空时将其转换为数据

我曾想过创建一个函数来进行转换或使用一些临时变量,但是我想找更好的东西

2 个答案:

答案 0 :(得分:0)

您可以使用以下表达式:

IIf(txtdata1 = vbNullString, "", CDate(txtdata1))

答案 1 :(得分:0)

我以这种方式解决了

Call MyObj.Insert(..., _
                      txtData1, _
                      txtData2, _
                      txtData3, _
                      txtData4, _
            )

MyObj.Insert中我将参数更改为variant,并使用Format(txtData1, "YYYYMMDD")

转换i参数