【问题标题】:Excel VBA: How to combine multiple Excel files with same layout in a single folder into a single sheet?Excel VBA:如何将单个文件夹中具有相同布局的多个 Excel 文件合并到一个工作表中?
【发布时间】:2022-11-02 06:10:31
【问题描述】:

因此,我想创建一个 Excel VBA,将 Outlook 文件夹的所有附件保存到单个 Excel 文件(所有文件将具有相同的布局但不同的数据),然后将该文件夹中的 Excel 文件合并到活动工作表中。

我已经成功地将所有附件保存到一个文件夹中。但是,我未能将这些文件合并到一张纸上。你能帮忙吗?

非常感谢

我已经为我的问题的第二部分尝试了几件事,但没有奏效。这是我的代码的第一部分:

Option Explicit

Sub IKDISKETI()

Dim ol As Outlook.Application
Dim ns As Outlook.Namespace
Dim fol As Outlook.Folder
Dim i As Object
Dim mi As Outlook.MailItem
Dim at As Outlook.Attachment

Set ol = New Outlook.Application
Set ns = ol.GetNamespace("MAPI")
Set fol = ns.Folders(1).Folders("IKDISKET")

For Each i In fol.Items

If i.Class = olMail Then

Set mi = i

If mi.Attachments.Count > 0 Then

Debug.Print mi.SenderName, mi.ReceivedTime, mi.Attachments.Count

For Each at In mi.Attachments

Debug.Print vbTab, at.DisplayName, at.Size
at.SaveAsFile "C:\IKDISKET\" & at.Filename

Next at

End If

End If

Next i

End Sub

Option Explicit

【问题讨论】:

  • 你说:但是,我未能将这些文件合并到一张纸上。你能帮忙吗?相当不可能,因为您没有说它们应该如何组合在一张纸中。并排展开,彼此下方或叠加在一起或什么。请以一张表的数据示例为例。
  • 如果这是由 Exchange 管理的邮箱,请考虑使用“数据”、“获取数据”、“来自在线服务”、“来自 Exchange 在线”

标签: excel vba outlook worksheet office-automation


【解决方案1】:

您可以自动化 Excel 以将 Excel 文件合并为一个文件。为此,您需要打开每个文件并提取所需的数据。请注意,您可以使用复制和粘贴命令更快地复制所需信息。有关如何创建新 Excel 应用程序实例和打开文件的更多信息,请参阅Early and Late Binding (Visual Basic)

此外,如果您只处理开放 XML 文档,您可以考虑使用开放 XML SDK,请参阅Welcome to the Open XML SDK 2.5 for Office

【讨论】:

    猜你喜欢
    • 2010-11-07
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多