Outlook Excel比较两个已关闭工作簿中的数据



我是Outlook VBA的新手,正在尝试比较两个不同的已关闭工作簿中同一单元格中的值。

我在收到一封将附件保存为CSV文件的电子邮件附件后创建了一个Excel对象。

然后,我想检查文件中的标题行是否与第一行中具有相同标题的主副本匹配,但我不确定如何使用对象引用工作表名称或单元格。我已经尝试了许多使用VBA for Excel的方法,但它似乎在Outlook中不起作用。

如果有人能帮助我,我将不胜感激。

Function ConvertXls2CSV(sXlsFile As String)
On Error Resume Next
Dim oExcel As Object
Dim oExcelWrkBk As Object
Dim bExcelOpened As Boolean 'Was Excel already open or not
Dim OriginalFile As String
Dim MasterFile As String
Dim Fault As Integer
Set oExcel = GetObject(, "Excel.Application") 'Bind to existing instance of Excel
If Err.Number <> 0 Then 'Could not get instance of Excel, so create a new one
    Err.Clear
    On Error GoTo Error_Handler
    Set oExcel = CreateObject("excel.application")
    bExcelOpened = False
Else 'Excel was already running
    bExcelOpened = True
End If    
Set oExcelWrkBk = oExcel.Workbooks.Open(sXlsFile)
oExcelWrkBk.SaveAs Left(sXlsFile, InStrRev(sXlsFile, ".")) & "csv", xlCSVWindows

/*THIS IS WHERE I WANT TO REFERENCE THE CELLS IN THE WORKBOOKS*/
OriginalFile = oExcelWrkBk.Sheets("PK Price Data").Cells(1, 1).Value
MasterFile = oExcelWrkBk."MasterFile.xls".Sheets("PK Price Data").Cells(1, 1).Value
if OriginalFile = MasterFile then
fault = 1
else fault = 0
end if
oExcelWrkBk.Close False
If bExcelOpened = False Then
   oExcel.Quit
End If
End Function

非常感谢Melinda

据我所知,不可能处理对已关闭工作簿的引用。但是,您可以打开它而不显示application.screenupdating = false。在某些变量中存储完引用后,只需关闭工作簿并设置application.screenupdating = true

最新更新