我正试图将另一个文件中的电子邮件地址获取到正在使用的活动工作簿中,但我只需要基于每天早上获取的文件中的区域的某些电子邮件地址。我目前想知道是否有一种方法可以在不必打开电子邮件列表的情况下获取这些电子邮件地址,因为这决定了vlookup是否有效?
代码如下:
Sub Vlookup_DoWhile()
Dim LookupRange As Range
Dim Cll As Range
Dim myRange As Range
Dim i As Long
Set LookupRange = Workbooks("Email List.xlsx").Sheets(1).Range("A2:B5")
i = 2
Do While ActiveWorkbook.Worksheets("PAV").Cells(i, 15).Value > 1
Cells(i, 16).Value = Application.WorksheetFunction.VLookup(Cells(i, 15), LookupRange, 2, False)
Application.Dialogs(xlDialogSendMail).Show Cells(i, 16).Value
i = i + 1
Loop
End Sub
类似的东西
Sub-adoDBConnection
Dim con as Object
设置con=createObject("adodb.connection"(
将strCon标注为字符串
'IMEX=1用于读取,0用于读取和写入
strCon=";提供商=Microsoft.ACE.OLEDB.12.0;数据源=c:\myFolder\myExcel2007file.xlsx;扩展属性='Excel 12.0 Xml;HDR=是;IMEX=1'">
con.open strCon
Range("A1"(.copyFromRecordSet con.Execute("SELECT*[Mysheet$]WHERE[MYFIELD]='myvalue';">
'或只检索一个单一值
Range("A1"(.value2=con.Execute("SELECT[MYFIELD]FROM[Mysheet$]WHERE[MYFIEDD2]='MYQUERY';((0(.value
con.close
结束子
如果您熟悉SQL查询,我建议您使用ADODB连接。它非常快。它不会闪烁Excel,您也不需要打开该文件。