我有一個Access數據庫是什麼(C:\用戶\ 289894 \桌面\ Database1.accdb) 一個領域的[表1]是[備註]。
該字段的數據類型爲Memo
,文本格式設置爲rich text
。 例如,它可以將一些記錄保存爲粗體和一些記錄保存爲斜體字。
我想從excel文件中打開與此Access數據庫的連接,以讀取/寫入此富文本字段。
我使用的代碼如下:
Dim datab As Database
Dim rs As Recordset
Dim path As String
path = "C:\Users\289894\Desktop\Database1.accdb"
Set datab = OpenDatabase(path)
Set rs = datab.OpenRecordset("SELECT * FROM [Table1]")
Debug.Print rs!Memo
Range("A1") = rs!Memo
我的問題
此代碼的工作很好地打開一個連接並且讀取普通的文本字段,但豐富的文本以令人驚訝的方式起作用(爲了我)。訪問中的原始文本是「aaa」。這是粗體字的「aaa」。
運行代碼後,debug.print和Range(「A1」)都有<div><strong>aaa</strong></div>
寫入它們。
如何更改我的代碼以將格式發送到excel?我想在單元格A1中以粗體書寫「aaa」,就像它在Access中一樣。
編輯:解決方法 這解決了問題提出的直接問題,而沒有真正回答問題本身。它使用Internet Explorer將文本粘貼爲富文本格式,但沒有標籤。
Sub Sample()
Dim Ie As Object
Dim rng As Range
Set rng = Feuil1.Range("A1")
Set Ie = CreateObject("InternetExplorer.Application")
With Ie
.Visible = False
.Navigate "about:blank"
.Document.body.InnerHTML = rng.Value
.ExecWB 17, 0
'Select all contents in browser
.ExecWB 12, 2
'Copy them
ActiveSheet.Paste Destination:=rng
.Quit
End With
End Sub
這是一個有趣的問題。我沒有直接解決設置或用戶使用不同的導出方法,但是您可以使用的一種方法是在導入後循環行集並移除'html'標記並使單元格變爲粗體或斜體,具體取決於在標籤上。此外,標題似乎與這個問題無關。 –
@ScottHoltzman冠軍頭銜很好,我不確定那裏發生了什麼。至於粘貼回HTML,我想過,但我發現最好的答案是http://stackoverflow.com/questions/9999713/html-text-with-tags-to-formatted-text-in-an-excel -cell,它會爲我引發一個錯誤(編輯:它不再適用於較新的IE版本)。 –
你試過這個答案嗎? http://stackoverflow.com/a/14951531/3820271 – Andre