以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于EXCEL隐藏行提取问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137564)

--  作者:wh420
--  发布时间:2019/7/9 17:23:00
--  关于EXCEL隐藏行提取问题
当EXCEL表格的最下面有隐藏行时(隐藏行后面单元格无内容),以下代码取到的RowsMax ,ColsMax值不包括隐藏行。如何让他包括隐藏行?
For i As Integer =1 To rg.Columns.count
    Dim r = ws.cells(65536,i).End(MsExcel.XlDirection.xlUp).Row
    If r > RowsMax Then
       RowsMax = r
    End If
Next

For i As Integer = 1 To rowsMax
    Dim r = ws.cells(i,256).End(MsExcel.XLDirection.xlToLeft).Column
    If r > ColsMax  Then
        ColsMax = r
    End If
Next


--  作者:wh420
--  发布时间:2019/7/9 17:34:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190709173150.png
图片点击可在新窗口打开查看
例如图中共隐藏了三行,正确的值为:RowsMax=4 ,ColsMax=2。而上面的代码得到的却是:RowsMax=1 ,ColsMax=2。



--  作者:有点蓝
--  发布时间:2019/7/9 17:38:00
--  
先取消隐藏,或者直接使用Ws.Rows.count
--  作者:wh420
--  发布时间:2019/7/9 18:04:00
--  
取消隐藏不行,很多表呢。使用Ws.Rows.count判断的行数不准确,有很多被使用过的行但没有内容也会被计算在内。EXCEL获取有效行列就没有一个绝对有效的方法吗?
--  作者:有点蓝
--  发布时间:2019/7/9 20:09:00
--  
没找到execl组件有相关的用法,不然就只能使用笨方法,遍历所有行进行判断