Foxtable(狐表)用户栏目专家坐堂 → 老师帮忙看看这个判断和循环是不是有问题?


  共有4280人关注过本帖树形打印复制链接

主题:老师帮忙看看这个判断和循环是不是有问题?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/11 17:10:00 [显示全部帖子]

看不出什么问题。上例子看看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/12 9:25:00 [显示全部帖子]

获取实际行数


Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("F:\H\问题测试\abc.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim r = App.ActiveSheet.Range("A65536").End(MsExcel.XlDirection.xlUp).Row
Output.Show(Ws.UsedRange.Rows.Count)
Output.Show(r)
Dim Rg As MSExcel.Range = Ws.Rows("1:" & r)
Output.Show(Rg.Rows.Count)
App.quit

具体问题上传文件测试

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/14 14:36:00 [显示全部帖子]

用法差不多

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("F:\H\问题测试\abc.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim i = ws.Range("iv1").End(MsExcel.XlDirection.xlToLeft).Column
msgbox("第一行最后一个非空单元格列号为" & i)
App.quit


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/15 16:23:00 [显示全部帖子]

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(ProjectPath & "EXCEL测试文件\" & "1.xlsx")

Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim rowsmax As Integer = 0
Dim colsmax As Integer = 0
Dim rg = ws.usedRange
For i As Integer =1 To rg.Columns.count
    Dim r = ws.cells(100000,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,200).End(MsExcel.XLDirection.xlToLeft).Column
    If r > ColsMax  Then
        ColsMax = r
    End If
Next
App.quit
msgbox(RowsMax)
msgbox(colsmax)

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/15 20:09:00 [显示全部帖子]

设置成Execl可以支持的最大值不就行了,具体上网搜搜

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/29 17:21:00 [显示全部帖子]

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(ProjectPath & "EXCEL测试文件\" & "test20.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim rowsmax As Integer = 0
Dim colmax As Integer = 0
Dim rg = Ws.UsedRange


'Dim FirstRow As Integer = Ws.Range("A1:d1").End(MSExcel.XlDirection.xlDown).Row
'msgbox(firstrow)

For i As Integer =1 To rg.Columns.count
    
    Dim r = ws.cells(1000,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,200).End(MsExcel.XLDirection.xlToLeft).Column
    If r > ColMax  Then
        ColMax = r
    End If
Next
rg =  Ws.Range(Ws.Cells(1,1), Ws.Cells(RowsMax,ColMax ))
Dim ary = rg.value
'msgbox(rg.Rows.count)
'msgbox("读取列:" & rg.Columns.count & "," & "实际列:" & ColMax & "," & "实际行:" & RowsMax )
For i As Integer = 1 To rowsmax
    For j As Integer = 1 To Colmax
        If ary(i,j) <> Nothing Then
            Dim dr As DataRow = DataTables("表A").AddNew
            dr("第一列") = ary(i, j)
        End If
        
    Next
    
Next

App.quit

'msgbox(colsmax)
'msgbox(RowsMax)

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/30 16:23:00 [显示全部帖子]

设置实际的数据范围

如果第一列和第一行都为空Ws.UsedRange是不包含第一列和第一行的

 回到顶部