2014-02-26 42 views
0

我试图在excel行中查找指定的数据。与行范围A1:A1J一样,只有一个单元格具有数据“过程”。如果我发现,在给定范围内的数据,我需要弹出“发现”的消息这是我的代码如何在excel行中使用access vba查找指定的数据

  Dim ExcelApp As New Excel.Application 
     Dim ExcelBook As New Excel.Workbook 
     Dim rng As Excel.Range 
     Dim rngDefine As Excel.Range 

     Set ExcelBook = ExcelApp.Workbooks.Open("C\temp\find.xlsm") 
     ExcelApp.Visible = False  
     'Define your own Range 
     Set rngDefine = ExcelBook.Worksheets("Datatab").Range("A1:AJ1") 

     'ExcelBook.Worksheets("Datatab").Range ("A1:AJ1") 

     Set c = .Find("Process", LookIn:=xlValues) 
     For Each rng In rngDefine 
     If c = "Process" Then 
     MsgBox "Found" 
     End If 
      Next 

     ExcelApp.Quit 
     Set ExcelApp = Nothing 

不工作。任何furthur代码我需要添加?

回答

2

第一种方法(slighlty更快):

Set rngDefine = ExcelBook.Worksheets("Datatab").Range("A1:AJ1") 

If IsError(ExcelApp.Match("Process", rngDefine, 0)) Then 
    MsgBox "Not found" 
Else 
    MsgBox "Found" 
End If 

第二种方法:

Dim c As Excel.Range 

Set rngDefine = ExcelBook.Worksheets("Datatab").Range("A1:AJ1") 

Set c = rngDefine.Find(What:="Process", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False) 

If c Is Nothing Then 
    MsgBox "Not found" 
Else 
    MsgBox "Found" 
End If 
+0

这两种方法都很好工作。非常感谢。顺便说一句,我怎么能够删除该行包含“进程”的数据。 – vuyy1182

+0

行或列?在你的情况最简单的方法是使用第二种方法,并写入:'c.EntireColumn.Delete'(或'EntireRow'用于删除行) –

+1

它的工作。谢谢。 – vuyy1182

相关问题