首页 > 解决方案 > 将单元格数据与不同的工作簿数据进行比较?

问题描述

VBA 中有没有办法查看外部工作簿是否包含来自不同工作簿的值?本质上,我有一个带有宏按钮的工作簿。一旦按下按钮,它将从特定单元格 A2 中获取一个电子邮件地址。我需要的是能够从单元格 A2 获取数据输入的宏,并确定不同的工作簿是否也包含该电子邮件。我不想将电子邮件硬编码到 VBA 中,因为这个具有宏功能的工作簿是一个模板,并且会不断地输入不同的电子邮件。因此,此宏功能将需要检查此外部工作簿以查看输入的电子邮件是否包含在该工作簿中。我试图在网上查找资源,但我不断收到编译器错误。所以我不知道我做错了什么。我目前拥有的代码非常基本,但我想,

Dim workbookExternal As Workbook
Dim cellValue As Integer
Set workbookExternal = Workbooks.Open(path name to excel wb)
Dim worksheetExternal As Worksheet
Set worksheetExternal = workbookExternal.Worksheets("Client_Data")
Dim strEmailRecipient As String
Dim emailValue As String
emailValue = Range("A2") ' Cell where the email is being placed


 If InStr(worksheetExternal.Range("A1:AA100"), emailValue) = emailValue Then ' determining if external 
 ' workbook range contains the email value thats equal to the data stored in A2 of this workbook
 MsgBox ("Success")
 Else
 MsgBox ("Error")
 End If

这只是目前确定代码是否正确执行的基本结构。

任何帮助将不胜感激!

标签: excelvba

解决方案


这是一个很好的案例Range.Find

Dim foundRng as Range
Set foundRng = worksheetExternal.Range("A1:AA100").Find(What:=emailValue, _
                   LookIn:=xlValues, LookAt:=xlPart)

If Not foundRng Is Nothing Then ' test if the Find was successful
     MsgBox "Email is at location: " & foundRng.Address(False, False)
Else
     MsgBox "Email not found."
End If

推荐阅读