我一直在尋找這個特定問題的答案,但我似乎無法找到答案。我正在嘗試將我收到的多個基於Excel的列表作爲電子郵件附件進行組合。只是爲了給出一點上下文,這個宏已經工作了近兩年沒有錯誤,但我最近將它從運行Excel 2007的系統切換到運行Excel 2007的系統& Outlook 2007.通過Outlook VBA從Excel附件中查找LastRow
以下行是給我一個1004: Application-defined or object-defined error
:
LR = xlAtt.ActiveSheet.Range("A" & xlAtt.ActiveSheet.Rows.Count).End(xlUp).Row
上下文中的代碼是:
Private Sub ProcessAttachments(olFolder As Outlook.MAPIFolder)
Dim xlApp As Object, xlAtt As Object
Dim LR As Long
Dim olItem As Outlook.MailItem
Dim count As Integer
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
For count = olFolder.Items.Count To 1 Step -1
Set olItem = olFolder.Items.Item(count)
If olItem.Class = olMail And olItem.Attachments.Count > 0 Then
'Omitted a few lines here that verify if the attachment is an Excel file
'and then saves it to a folder
Set xlAtt = xlApp.Workbooks.Open("pathToFile")
xlAtt.Activate
LR = xlAtt.ActiveSheet.Range("A" & xlAtt.ActiveSheet.Rows.Count).End(xlUp).Row
'More VBA after
以上僅僅是一個代碼片段,但希望提供足夠的上下文。
我試過測試每一條線給我一個錯誤,我已經能夠縮小到該行的.End(xlUp).Row
部分。
任何幫助表示讚賞。
它的工作原理,如果你使用'xlUp'枚舉'-4162',這是令人費解的我爲什麼它停止工作,因爲你仍然在使用XL2007並在代碼中將它綁定到XL。如果枚舉不起作用,那麼您打開的附件做了些什麼改變,可能會返回一個不同於您期望的「ActiveSheet」? –
Scott,請將其置於答案中,以便我接受。使用枚舉工作!謝謝。 –
我懷疑以前版本的Outlook有一個Excel庫的引用,但新的沒有。打開Outlook VB編輯器,點擊工具,然後點擊參考。在頂部附近,您應該在其左側有一個勾號框的「Microsoft Excel nn.0 Object Library」。 「nn.0」的值取決於版本。如果它不在最上面,請向下滾動到這個文件並勾選它。所有的Excel常量現在都可用。 –