gpt4 book ai didi

vba - 通过 Outlook VBA 从 Excel 附件中查找 LastRow

转载 作者:行者123 更新时间:2023-12-04 20:13:17 25 4
gpt4 key购买 nike

我一直在寻找这个特定问题的答案,但似乎找不到。我正在尝试合并作为电子邮件附件收到的多个基于 Excel 的列表。只是为了提供一点上下文,这个宏已经运行了将近两年而没有错误,但我最近将它从运行 Excel 2007 和 Outlook 2010 的系统切换到运行 Excel 2007 和 Outlook 2007 的系统。

以下行给了我一个 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线的一部分。

任何帮助表示赞赏。

最佳答案

Outlook 2007 不能识别 Excel 常量,而 OL 2010 可以。

而不是写 xlUpxlUp 编写枚举这是-4162 .

所以你的代码看起来像这样:

LR = xlAtt.ActiveSheet.Range("A" & xlAtt.ActiveSheet.Rows.Count).End(-4162).Row

要在 Excel VBA 中查找任何常量的任何枚举,一旦进入 VBE,请按 F2打开对象浏览器并在双筒望远镜旁边的框中键入常量,然后单击双筒望远镜。点击搜索结果中的常量,底部的框会显示枚举。

或者,您可以为枚举设置一个常量变量并仍然使用 xlUp在你的语法中:
Constant xlUp = -4162

关于vba - 通过 Outlook VBA 从 Excel 附件中查找 LastRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com