2009-10-16 394 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