【问题标题】:Outlook Excel Compare data from two closed workbooksOutlook Excel 比较两个已关闭工作簿中的数据
【发布时间】:2013-08-22 18:15:33
【问题描述】:

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

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

然后我想检查文件中的标题行是否与第一行中具有相同标题的主副本匹配,但我不确定如何引用工作表名称或使用对象的单元格。 我已经尝试了很多使用 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

非常感谢 梅琳达

【问题讨论】:

  • 你为什么这样做是Outlook?如果您正在处理 Excel 工作簿,Excel VBA 似乎更明智。你不知道如何循环工作表、行和单元格吗?

标签: excel vba outlook


【解决方案1】:

据我所知,无法解决您对已关闭工作簿的引用。但是,您可以在不显示 application.screenupdating = false 的情况下打开它。完成将引用存储在某些变量中后,您只需关闭工作簿并设置 application.screenupdating = true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多