我有一个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