Excel 从关闭的工作簿访问数据
我正在尝试将另一个文件中的电子邮件地址发送到正在使用的活动工作簿中,但是我只需要基于每天早上收到的文件中的某个区域的特定电子邮件地址。我现在想知道是否有一种方法可以在不打开电子邮件列表的情况下获取这些电子邮件地址,因为这决定了vlookup是否有效 代码如下:Excel 从关闭的工作簿访问数据,excel,vba,Excel,Vba,我正在尝试将另一个文件中的电子邮件地址发送到正在使用的活动工作簿中,但是我只需要基于每天早上收到的文件中的某个区域的特定电子邮件地址。我现在想知道是否有一种方法可以在不打开电子邮件列表的情况下获取这些电子邮件地址,因为这决定了vlookup是否有效 代码如下: Sub Vlookup_DoWhile() Dim LookupRange As Range Dim Cll As Range Dim myRange As Range Dim i As Long Set LookupRang
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
如果您熟悉SQL查询,我建议您使用ADODB连接。它非常快。Excel不会闪烁,您不需要打开该文件。类似的内容 子ADODB连接 作为对象的Dim con Set con=createObject(“adodb.connection”) 作为字符串的Dim strCon 'IMEX=1进行读取,0进行读取和写入 strCon=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=c:\myFolder\myExcel2007file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';” con.开放式strCon 范围(“A1”).copyFromRecordSet con.Execute(“选择*[Mysheet$],其中[MYFIELD]='myvalue';” '或仅检索一个值 Range(“A1”).value2=con.Execute(“从[Mysheet$]中选择[MYFIELD],其中[MYFIELD2]='MYQUERY';)(0).value 结束
End Sub如果它没有打开,你就无法读取它。但是你可以打开它,读取它,然后立即关闭它…如果你有选择,使用数据库会更好…@braX我的意思是理论上你可以解压文件,并从xml中读取数据:Pi假设你可以--但是你为什么要这样做?好处是什么?感谢bo谢谢你的回复。我将不得不调查所有这些。不幸的是,我没有,也没有访问权限。如果这足够的话,我确实有能力使用Microsoft access???你不需要访问权限,实际上excel被视为一个数据库。好的,谢谢你,我会尝试与我现在正在做的事情结合起来。我感谢你的时间!