在 Excel 2016 中,尝试将空记录集值添加到列表框时会发生以下错误:
With LiBxCliFor
.ColumnCount = 4
.ColumnHeads = False
.ColumnWidths = "40;250;120;40"
LinhaLiBx = .ListCount
While Not lrs.EOF
.AddItem
.List(LinhaLiBx, 0) = lrs.Fields("ID_CliFor")
.List(LinhaLiBx, 1) = lrs.Fields("Nome")
.List(LinhaLiBx, 2) = lrs.Fields("NumDocumento")
.List(LinhaLiBx, 3) = lrs.Fields("LocalVenda")
LinhaLiBx = LinhaLiBx + 1
lrs.MoveNext
Wend
End With
该行发生错误,因为值为空:
我在 Office Professional Plus 2019 上开发了所有代码。列表框接受 Null 值,但我的客户在他的家用计算机上使用 Office Professional Plus 2016。 (他办公室的另一个版本没有出现任何错误。)
Office 2019 是否有更新以接受 Null?
您应该尝试让您的代码在两个版本的 Excel 上都能运行。这是一种方法:-
Dim V As Variant
V = lrs.Fields("LocalVenda")
.List(LinhaLiBx, 3) = IIf(IsNull(V), "", V)
更短的方法可能是(“可能”,因为我没有测试)在分配之前加上
On Error Resume Next
,我希望在发生错误时将列表项留空。