【发布时间】:2021-11-07 15:12:41
【问题描述】:
多年来,我一直在使用将数据从 .xls 文件导入 MS Project 的宏。问题是,由于未知原因,它仅适用于 MS Project 2003。当我尝试在 MS Project 2010 上运行它时,导入过程完成之前的那一刻,MS Project 只是冻结,之后没有任何反应。
更奇怪的是,即使没有宏(如果我尝试使用 File -> Open -> ...手动导入数据)它仍然无法正常工作,而在 MS Project 2003 中,两种方式都可以正常工作.
在我看来,问题似乎根本与 VBA 无关,但我将在此处发布宏,以便你们无论如何都能看到它。
以下是一些我认为可能很重要的进一步信息:
- 我正在使用自定义 mpp 模板。
- 我正在使用自定义导入映射。
- 我尝试使用 FileOpenEx 方法,但它仍然不起作用。
- 我尝试导入的 .xls 文件包含三个工作表,分别用于 Task、Ressource 和 Assigment。
- 我尝试将文件保存为 .xlsx,因为我使用的是较新版本的 Project,但这并没有改变任何内容。
- 我认为它最终会失败,因为如果我尝试手动操作,我可以看到 MS Project 表格旁边的时间线图上显示的工作情况。
这里是宏:
Dim filename As String
FileNew Template:="", FileNewWorkpane:=True
FileOpen Name:="PATH TO THE TEMPLATE FILE", _
ReadOnly:=False
FileOpen Name:="PATH TO FILE TO IMPORT", _
ReadOnly:=False, map:="MY CUSTOM MAPNAME"
filename = "C:\Imported.mpp"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(namedoc) Then
Dim OldName, NewName
nomfile = 1
OldName = filename: NewName = "C:\Imported old Copy 1.mpp"
While fs.FileExists(NewName)
nomfile = nomfile + 1
NewName = "C:\Imported old Copy " & nomfile & ".mpp"
Wend
Name OldName As NewName
End If
FileSaveAs Name:="C:\Imported.mpp", FormatID:="MSProject.MPP"
任何建议将不胜感激。提前谢谢!
【问题讨论】:
-
尝试将数据放入 csv 文件中,看看 MS Project 2010 是否接受。
-
@SolarMike 感谢您的建议,但 .csv 文件是否仅适用于单页情况?我的 .xls 文件中有三张纸,但我不知道如何将它们全部合并到一张中
-
3 个单独的也是如此 - 如果可行,那么您可以查看其他选项。找出有效方法的排除过程可能会帮助您解决它。
-
由于此问题与应用程序有关,而不是 vba,我建议您将其发布到 Project Management 站点,在那里您可以找到更多项目专家。
-
我还建议您拆分导入并开始使用资源创建一个新文件,然后合并任务,然后合并分配。
标签: excel vba ms-project