2009-10-16 403 views
1

我使用VBA从MS Project中提取'任务笔记',并且想要创建MS Word .DOC文件并将这些文本复制到EXCEL中。使用VBA将多个RTF文本合并到一个RTF文件中

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

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

我更喜欢使用VBA的答案。

当然,如果有谁知道如何从MS项目中提取的笔记,并创建一个.doc文件保存格式,它的确定以及

回答

0

这可能不是正确的答案,但你可以在VBA做到这一点:

对于每个RTF文件,打开并保存到剪贴板作为富文本(通过API),并粘贴在单词中。

这是丑陋的,但它的作品。

+0

是否有功能的例子吗? – Oneide 2011-03-25 13:20:16

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脚本运行时参考,这一点:

Dim ts As TextStream 
    Dim fso As New FileSystemObject