VBA在Excel中查找列并查找值?

时间:2017-06-02 13:31:50

标签: excel vba

我试图通过查看另一个工作簿中的列E来查找值。

该值隐藏在单元格的文本中。

单元格示例:

这是一些文字My Value这是一些文字

这是我的代码:

Option Explicit
Sub Find()
Dim FoundRange As Range
Dim rng As Range
Dim wb As Workbook

On Error Resume Next
Set wb = Workbooks("Supplier Contacts.xlsx")
If wb Is Nothing Then 'open workbook if not open
    Set wb = Workbooks.Open("G:\QUALITY ASSURANCE\06_SUPPLIER INFORMATION\Supplier Contacts.xlsx")
End If

With wb.Worksheets("Listed Supplier")

Set rng = .Columns("E:E")
Do While rng.Value <> Empty
If InStr(rng.Value, ThisWorkbook.Worksheets("Data").Range("B3").Value) = 0 Then
Set rng = rng.Offset(1)
rng.Select

Else

MsgBox "I contain a % symbol!"
End If
Loop

End With
End Sub

似乎没有发生任何事情,并且擅长崩溃。

请有人告诉我我哪里出错了吗?

1 个答案:

答案 0 :(得分:0)

您的一个问题是,您的rng变量指的是整个列,然后您要求代码获取该值。

With语句后,请尝试使用此代码;

For Each rng in wb.Range("E:E")
    If IsEmpty(rng.value) = False Then
      If InStr(String1:=rng.Value, String2:=ThisWorkbook.Worksheets("Data").Range("B3").Value) <> 0 Then
         MsgBox "I contain a % symbol!"
      End If
   End If
Next rng

String1:=String2:=的目的是指定这些是您所指的条件,因为InStr的第一个条件是Start:=