1

我正在使用 VBA 从 MS Project 中提取“任务笔记”,并希望创建一个 MS Word .DOC 文件并将这些文本复制到 EXCEL 中。

如果您使用 Task 对象的 Notes 属性,您只能获得 255 个字符,并且不会保留格式。为了保持格式,您可以将 .MPP 文件转换为 .MPD 并提取注释。这些注释已使用 rtf 存储(请参阅 PJDB.HTM 查找“sub getRtf”)。这样我可以提取所有笔记并将它们写入 .rtf 文件。如果我使用 MS Word 打开该文件(包含多个注释 [我已验证]),我只会看到第一个注释(并且它已被格式化)。我从其他网站收集的信息得知,文件中只有一个 rtf 文本将被处理,加入多个 rtf 文本并非易事。

所以我的问题是:有谁知道如何将几条 rtf 行组合成一个 rtf 文本。

我更喜欢使用 VBA 的答案。

当然,如果有人知道如何从 MS Project 中提取笔记并创建一个 .DOC 文件保留格式,那也没关系

4

2 回答 2

0

这可能不是正确的答案,但您可以在 VBA 中执行此操作:

对于每个 RTF 文件,打开并以富文本格式保存到剪贴板(通过 API),然后粘贴到 word 中。

这很丑陋,但它有效。

于 2009-10-28T17:00:31.843 回答
0

我有一个类似的任务是从数据库中读取 RTF 并为所有记录创建一个报告,在 Word 文档中保留 RTF 格式。代码从数据库中获取 RTF,将其写入扩展名为 .rtf 的文件,然后将文件插入表格单元格。我猜不完全是你在做什么,但报告确实显示了 N 条记录中的所有格式化文本。

所以“文件”并不是真正的“组合”。

Word 表确实手动粘贴到 Excel 中并保留了格式。我不知道 Excel 中的 InsertFile 等价物。

    RS.Open SQL, con
    Do Until RS.EOF
        Set ts = fso.CreateTextFile("c:\temp\temp.rtf", True)
        ts.Write RS(0)
        ts.Close
        If iRow > 1 Then tbl.Rows.Add
        tbl.Cell(iRow, 1).Range.InsertFile "C:\temp\temp.rtf", , False
        .....
        iRow = iRow + 1
        RS.MoveNext
    Loop

需要对 Microsoft Scripting Runtime 的引用,并且:

    Dim ts As TextStream
    Dim fso As New FileSystemObject
于 2013-03-12T22:04:31.217 回答