使用 VBA 将文件添加到 MS-Project 任务注释字段
Posted
技术标签:
【中文标题】使用 VBA 将文件添加到 MS-Project 任务注释字段【英文标题】:Add file to MS-Project task note field with VBA 【发布时间】:2021-12-16 08:10:10 【问题描述】:我正在尝试通过将信息添加到任务的“注释”字段中来将特定里程碑的详细信息存储在 MS Project 文件中(我正在使用 MS Project Online 桌面客户端)(因为普通的自定义文本字段限制为 255 个字符) ,但在保持格式方面存在问题。 Notes 字段还允许添加任何类型的文件(例如 Word 或 Excel)作为对象,这对我来说可能是一个很好的解决方案,但是当使用 MS Project 宏记录器时,不会记录添加对象的操作。
因此我的问题是:VBA 中是否有可能将文件添加到任务的备注字段并稍后检索它?
任何帮助将不胜感激。
最好, 哈拉尔
【问题讨论】:
【参考方案1】:我不确定有没有办法在代码中做到这一点。似乎任务对象的Notes property 只接受字符串数据。即使有办法将文件作为注释附加,我也会强烈建议不要这样做,因为它可能会导致您的项目文件损坏。我包含来自this article 的图片:
作为长期使用 MS Project 的人,我亲眼目睹了这种损坏的发生,这确实是您的项目文件可能发生的最糟糕的事情。更好的选择是将这些文件放在共享的网络位置,只需将 path 引用到您想要的文件,您可以通过任务的 Notes 属性在 VBA 代码中执行此操作。
【讨论】:
【参考方案2】:非常感谢您的快速响应和警告!我做了更多的挖掘,我有理由确定它不能用 VBA 完成。 我现在所做的是将一个类似 html 的字符串放入注释中,其中包含 Excel 中关于我的可交付成果的详细信息的数据。
<DELIVERABLEINFO><OBJECTIVE>The Project Change Management Plan defines and documents the change process for a project.</OBJECTIVE><TOC>to be defined</TOC><INFO>to be defined</INFO></DELIVERABLEINFO>
稍后从 MS-Project 生成 Excel 文件时,我会解析字符串并再次填写特定字段。效果很好,但我发现虽然字符串可以直接从 Excel 单元格内容生成,但当将其从注释放回 Excel 文件时,我需要使用以下函数对其进行处理以再次显示换行符。
Function StringFromNoteToExcel(strNote As Variant) As String
On Error GoTo StringFromNoteToExcel_Error
StringFromNoteToExcel = Trim(Replace(strNote, vbCr, vbLf))
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbVerticalTab, vbLf)
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbTab, vbLf)
On Error GoTo 0
Exit Function
StringFromNoteToExcel_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure StringFromNoteToExcel, line " & Erl & "."
End Function
它不允许任何花哨的格式,但至少保持结构,你仍然可以在我添加的 HTML 块之外添加注释。
再次感谢! 哈拉尔
【讨论】:
您应该查看在 VBA 中解析 json。 json 可能是使用 xml 执行操作的更简单方法。以上是关于使用 VBA 将文件添加到 MS-Project 任务注释字段的主要内容,如果未能解决你的问题,请参考以下文章