以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]非空单元格计数  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151420)

--  作者:天一生水
--  发布时间:2020/6/23 9:04:00
--  [求助]非空单元格计数
老师好!
下面的代码把空单元格也计数了,是什么问题?

Dim t As Table = Tables("表A")
For Each r As Row In t.Rows
    Dim sum As Double = 0
    For Each c As Col In t.Cols
        If c.name Like "*第*" Then
            If r(c.name) IsNot Nothing Then
                sum += 1
            End If
        End If
    Next
    msgbox(sum)
Next


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (1).jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/6/23 9:08:00
--  
            If r.isnull(c.name)=falseThen
                sum += 1
            End If

--  作者:天一生水
--  发布时间:2020/6/23 10:15:00
--  
谢谢蓝老师!
这样写错在哪里?
Dim cous As Integer = 0

For Each dr As DataRow In Tables("表A").DataTable.DataRows
    If dr IsNot Nothing Then
        cous = iif(dr.isnull("第一列")=False ,1,0) + iif(dr.isnull("第二列")=False ,1,0) + iif(dr.True("第三列")=False ,1,0)
     End If
Next

--  作者:有点蓝
--  发布时间:2020/6/23 10:22:00
--  
要实现什么功能?
--  作者:天一生水
--  发布时间:2020/6/23 12:40:00
--  
对参与计算平均数的单元格计数。如图中1-5列,有些可能是空值。

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/6/23 13:59:00
--  
cous = cous + iif(dr.isnull("第一列")=False ,1,0) + iif(dr.isnull("第二列")=False ,1,0) + iif(dr.True("第三列")=False ,1,0)