2017-06-08 5 views
1

Ich schreibe eine Funktion in Outlook VBA, die das Lesen von Inhalt aus einer Excel-Arbeitsmappe beinhaltet.Outlook VBA letzte Zeile in Excel-Arbeitsblatt finden

Der Teil, mit dem ich kämpfe, ist die letzte Zeile in einer Spalte zu finden (Spalte A in diesem Beispiel). Während die erste Zeile im markierten Block den Inhalt der A1-Zelle im angegebenen Arbeitsblatt korrekt anzeigt, wird in der zweiten Zeile ein Error "424" -Objekt benötigt.

Alle Vorschläge in das Problem würden sehr geschätzt werden.

Public Function openExcel() 



    Dim xlApp As Object 
    Dim sourceWorkBook 
    Dim sourceWorkSheet 


    Dim cellVal As String 
    Dim lastRow As Long 


    Set xlApp = CreateObject("Excel.Application") 

    With xlApp 
     .Visible = True 
     .EnableEvents = True 
    End With 

    Set sourceWorkBook = xlApp.Workbooks.Open("C:\SAMPLEPATH\Template.xlsx") 
    Set sourceWorkSheet = sourceWorkBook.Worksheets("Sheet1") 
    sourceWorkBook.Activate 


    With Activesheet 
 cellVal = sourceWorkSheet.Cells(1, 1) 
     lastRow = sourceWorkSheet.Cells(.Rows.Count, "A").End(xlUp).Row 
End With 



    sourceWorkBook.Save 
    sourceWorkBook.Close 
    xlApp.Quit 



End Function 
+0

'End (xlApp)' - Sie müssen nicht bedeuten 'End (xlUp)'? (oder vielleicht 'End (xlApp.xlUp)'?) – YowE3K

+0

Ich meinte 'Ende (xlUp)', guter Anruf. Es funktioniert jedoch weder 'End (xlUp)' oder 'End (xlApp.xlUp)'. Das vorherige Ergebnis in "Fehler 424 - Objekt erforderlich" und letzteres führt zu "Fehler 438 - Objekt unterstützt diese Eigenschaft oder Methode nicht" –

+1

Haben Sie einen Verweis auf die Microsoft Excel-Bibliothek? Wenn nicht, müssen Sie die Konstante selbst definieren - also 'End (-4162)' – YowE3K

Antwort

2

Wenn Sie die Möglichkeit, verwenden, um Excel-Konstanten in Ihrem Code haben wollen, müssen Sie entweder

a) Fügen Sie einen Verweis auf eine Microsoft Excel Objektbibliothek oder

b) Erstellen Sie Ihre eigene Konstante, z

End(-4162) 

oder

Const xlUp As Long = -4162 
... 
... End(xlUp) 
+0

Dies hat es funktioniert. Vielen Dank. –