以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码优化  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177917)

--  作者:wangglby
--  发布时间:2022/6/9 21:15:00
--  代码优化
  找到excel表格中指定列,第一个等于某字符的 行号,  这段代码有点慢,有更快的替代方案吗            
   
                    DIM AAA AS STRING
                    Dim Book As New XLS.Book(mc1)   
                    Dim Sheet As XLS.Sheet = Book.Sheets(0)
                    Dim m As Integer = 0
                    
                                  
                    For n As Integer = 0 To Sheet.Rows.Count -1    
                        If sheet(n,4).Text = AAA  Then
                            m=n
                            Exit For
                        End If
                    Next

[此贴子已经被作者于2022/6/9 21:18:49编辑过]

--  作者:有点蓝
--  发布时间:2022/6/9 21:24:00
--  
使用vba:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=149103
--  作者:wangglby
--  发布时间:2022/6/10 8:52:00
--  
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("路径1")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Range("f:f")
Dim RgFound As MSExcel.Range = Rg.Find(dhhz)

Dim Row1 As Integer = RgFound.Cells(1).Row

MessageBox.Show(Row1)
App.Quit



借用 VBA 代码,我改的以上代码,报错,请问错在哪

--  作者:有点蓝
--  发布时间:2022/6/10 9:10:00
--  
报什么错?
--  作者:wangglby
--  发布时间:2022/6/10 9:24:00
--  
未将对象引用设置到对象的实例
--  作者:有点蓝
--  发布时间:2022/6/10 9:49:00
--  
调试

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("路径1")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
msgbox(1)
Dim RgFound As MSExcel.Range = Rg.Find(dhhz)
msgbox(RgFound is nothing)
msgbox(RgFound.Address)
msgbox(RgFound.count)
msgbox(RgFound.Rows.count)
Dim Row1 As Integer = RgFound.Cells(1).Row
MessageBox.Show(Row1)
App.Quit

--  作者:wangglby
--  发布时间:2022/6/10 10:03:00
--  
用你的代码测试没问题  
  ,找到问题了 谢谢
[此贴子已经被作者于2022/6/10 10:07:37编辑过]