以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  减号报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194439)

--  作者:lisheng0613
--  发布时间:2024/12/10 11:06:00
--  减号报错
For Each dc As DataCol In DataTables("预算报表_table1").DataCols
    If dc.name = "预算类型" Then
        Continue For
    Else Dim r0 As Row = Tables("预算报表_table1").Rows(0)
        Dim r1 As Row = Tables("预算报表_table1").Rows(1)
        Dim r2 As Row = Tables("预算报表_table1").Rows(2)
        r0(dc.name) = r1(dc.name) - r2(dc.name)
    End If
Next

 减号报错,加号正常运算,为啥?
报错提示“从字符串“”到类型“double”的转换无效”

--  作者:有点蓝
--  发布时间:2024/12/10 11:16:00
--  
把"预算类型"列类型改为双精度
--  作者:lisheng0613
--  发布时间:2024/12/10 11:39:00
--  
老师,预算类型列是文本类型,不参与计算。
--  作者:lisheng0613
--  发布时间:2024/12/10 11:40:00
--  
而且,我测试过了,换成加号正常,减号就不行了
--  作者:有点蓝
--  发布时间:2024/12/10 11:48:00
--  
减号就是做减法,怎么会不参与计算?!

加号出来做加法,还可以用来合并字符串,所没有问题

--  作者:lisheng0613
--  发布时间:2024/12/10 11:50:00
--  
    If dc.name = "预算类型" Then
        Continue For
预算类型这一列,我是跳过去了吧。

--  作者:lisheng0613
--  发布时间:2024/12/10 11:52:00
--  
我的意思是原来没有   
 If dc.name = "预算类型" Then
        Continue For
这一段代码的时候,我看到加号是把字符合并了,所有加了这各代码,后面就正常运算了。不会出现字符相加的意思,但是减号不能达到这个效果

--  作者:有点蓝
--  发布时间:2024/12/10 11:57:00
--  
剩下的还有字符列吗

For Each dc As DataCol In DataTables("预算报表_table1").DataCols
    If dc.name = "预算类型" Then
        Continue For
    Else 
        Dim r0 As Row = Tables("预算报表_table1").Rows(0) 这一句必须换行,不能和Else 同一行
        Dim r1 As Row = Tables("预算报表_table1").Rows(1)
        Dim r2 As Row = Tables("预算报表_table1").Rows(2)
        r0(dc.name) = r1(dc.name) - r2(dc.name)
    End If
Next

--  作者:lisheng0613
--  发布时间:2024/12/10 12:00:00
--  
是的,有一列隐藏列没看到。已经解决了,谢谢。