以下是内部函数
'Dim dta As String = Args(0) '要检索的表名称
'Dim dca As String = Args(1) '要检索的列
'Dim dcb As String = Args(2) '要取值的列
'Dim dcc As String = Args(3) '准备查找值的列
'Dim dcd As String = Args(4) '准备填充值的列
Dim i1 As Integer = CurrentTable.TopRow '最上行位置
Dim i2 As Integer = CurrentTable.BottomRow '最末行位置
For ii As Integer = i1 To i2
Dim filter As String = Args(1) & "=" & CurrentTable.Rows(ii)(Args(3))
Dim dr As DataRow = DataTables(Args(0)).Find(filter)
If dr IsNot Nothing Then
'Dim dr As DataRow = DataTables(Args(0)).Find("Args(1) = '" & CurrentTable.Rows(ii)(Args(3)) & "'") '这样会发生错误
CurrentTable.Rows(ii)(Args(4)) = dr(Args(2))
Else
Continue For
End If
Next
'测试OK,Functions.Execute("vlookup","表A","第一列","第二列","第一列","第二列") '后两个参数是当前表的
之前是没有问题,可以调用
前几天升级新版本后今天用出错了,哪里原因?
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:自定义函数,vlookup
详细错误信息:
调用的目标发生了异常。
无法在 System.String 和 System.Int32 上执行“=”操作。