VBA:从Outlook VBA中保存的xls文件中提取单元格(1,1)

时间:2015-02-24 22:30:29

标签: vba outlook

注意:我在Outlook VBA中编写了以下代码。基本上代码在ThisOutlookSession中,我扫描以" new"开头的电子邮件,将附件保存在Desktop中,并将debug.print中的值保存在Cells(1,1)中。但是,Outlook崩溃了,并说“对象不支持这种属性或方法”#34;在" Debug.Print sourceSH.Cells(1,1)"线。有什么问题?

Public WithEvents myOlItems  As Outlook.Items

Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")

    Dim f As Folder
    Set f = Application.Session.Folders.item("me").Folders.item("Inbox")

    Set myOlItems = f.Items

    Call LoadForm


End Sub

Private Sub myOlItems_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

  Dim Msg As Outlook.MailItem

    Dim name As String
    Dim res As String

    Dim sourceWB As Workbook
    Dim sourceSH As Worksheet

    Dim NewFileName As String

    Dim xlApp As Object


    If TypeName(item) = "MailItem" Then
        Set Msg = item


        ' do stuff with item
        If Left(Msg.Subject, 3) = "New" And Msg.Attachments.Count > 0 Then

            NewFileName = "C:\Desktop\" & Msg.Attachments.item(1).Filename

            ' save file
            Msg.Attachments.item(1).SaveAsFile NewFileName

            Set xlApp = CreateObject("Excel.Application")

            xlApp.Application.Visible = True

            Set sourceWB = xlApp.Workbooks.Open(NewFileName, True, True)

            Set sourceSH = sourceWB.Worksheets(1)

            Debug.Print sourceSH.Cells(1,1)

        End If

    End If

ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub

1 个答案:

答案 0 :(得分:0)

  

Debug.Print sourceSH.Cells(1,1)

Print方法将消息输出到即时窗口。您需要传递一个字符串,而不是Range对象。尝试将Text属性值传递给Print方法。

Debug.Print sourceSH.Cells(1,1).Text