| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3428 人关注过本帖, 1 人收藏
标题:使用vb6.0获得excel b列最后一个非空单元格
只看楼主 加入收藏
wjn_0311
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-24
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:10 
使用vb6.0获得excel b列最后一个非空单元格
各位老师:我是新手
如标题
有一张excel表格在sheet1中 b列有若干数据,采用VBA语法
Sub 表()
Dim a as string
a=Worksheets("sheet1").Range(“b1048576").End(xlUp).Row
msgbos a
End sub
可以获得b列最后一个非空单元格的行号

问题是,采用vb6.0后,怎样实现?因为“End(xlUp) “在vb6.0中是不认的。
望各位指点,盼复,谢谢。
搜索更多相关主题的帖子: excel 老师 
2011-06-01 17:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
是不认 .end 这个属性,还是 不认  xlup 这个常量。
如果不认这个常量的话,那么你到 EXCEL 中,输出这个 XLUP 常量看看值就是了。
然后照样填进去就可以了。
-4162

授人于鱼,不如授人于渔
早已停用QQ了
2011-06-01 17:55
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:10 
引用microsoft excel xx.x Object Library
(xx.x为版本号)
另外,直接从excel的vba中拷过来的代码可能要略做调整才能用,如workseet不能直接使用

[ 本帖最后由 jiashie 于 2011-6-2 09:18 编辑 ]
2011-06-02 09:17
wjn_0311
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-24
收藏
得分:0 
已经引用了microsoft excel 14.x Object Library(我装的是excel2010版)。
已经试过vb6.0 不支持end属性,我想知道vb6.0里面有和VBA中End(xlUp)相同(或相近)的用法的吗?
2011-06-02 12:56
人王
Rank: 2
等 级:论坛游民
帖 子:20
专家分:22
注 册:2011-7-2
收藏
得分:0 
这里不知道表有多少行,暂设为200吧
Private Sub Command1_Click()
dim i as integer
CommonDialog1.Action = 1
Dim oexcel, oworkbooks, newbook, newsheet, s As String
Set oexcel = CreateObject("Excel.application")
Set oworkbooks = oexcel.workbooks
Set newbook = oworkbooks.Open(CommonDialog1.FileName)
Set newsheet = newbook.worksheets(1)
for i=1 to 200
  if newsheet.cells(2, i)="" then  exit sub
  s=newsheet.cells(2, i)
next i
end sub
2011-07-03 09:04
chk0301
Rank: 2
等 级:论坛游民
帖 子:23
专家分:57
注 册:2011-6-23
收藏
得分:0 
楼上的思路非常好,但有个问题就是如果表超过200行呢?所以我建议不要用for循环加IF判断,直接用DO循环来判断
2011-07-04 10:08
人王
Rank: 2
等 级:论坛游民
帖 子:20
专家分:22
注 册:2011-7-2
收藏
得分:0 
对啊,谢谢指导
2011-07-04 14:33
zhuyongxing
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:234
专家分:482
注 册:2009-8-5
收藏
得分:0 
使用ADO
2011-07-05 13:48
zhuyongxing
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:234
专家分:482
注 册:2009-8-5
收藏
得分:0 
程序代码:
Public Function Read_Excel _
         (ByVal sFile _
          As String) As Long
      On Error GoTo fix_err
      Dim rs As ADODB.Recordset
      Set rs = New ADODB.Recordset
      Dim sconn As String

      rs.CursorLocation = adUseClient
      rs.CursorType = adOpenKeyset
      rs.LockType = adLockBatchOptimistic

      sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & sFile
      rs.Open "SELECT * FROM [sheet1$]", sconn, 1, 1
     Read_Excel = rs.RecordCount '就是记录数

      Set rs = Nothing
      Exit Function
fix_err:
      Debug.Print Err.Description + " " + _
                  Err.Source, vbCritical, "Import"
      Err.Clear
End Function
用法是 Me.Caption = Read_Excel(App.Path & "\2145.xls")
2011-07-05 13:50
lisypro
Rank: 4
等 级:业余侠客
威 望:3
帖 子:695
专家分:216
注 册:2005-9-25
收藏
得分:0 
好像有一个counta的函数,知道一种有多少行数据

长期承接管理系统
代做各种vb/ / vc小程序
QQ:82341763
手机:13623290828
群号 11619730
2011-07-17 10:27
快速回复:使用vb6.0获得excel b列最后一个非空单元格
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved