gpt4 book ai didi

excel - 在 Excel 中显示 MS-Access 记录的富文本格式

转载 作者:行者123 更新时间:2023-12-04 20:59:58 24 4
gpt4 key购买 nike

我想做的

我有一个 Access 数据库( C:\Users\289894\Desktop\Database1.accdb )
[Table1] 的字段之一是[Memo]。

该字段属于 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

我的问题

此代码可以很好地打开连接并读取普通文本字段,但富文本的行为方式令人惊讶(对我而言)。 access中的原文是“ 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 非常有限,如您的示例所示。

Sub Test()

Dim cel As Range
For Each cel In Range("A1:A100")

cel.Font.Bold = InStr(1, cel.Value, "<strong>")
cel.Font.Italic = InStr(1, cel.Value, "<i>")
cel.Value = RemoveHTML(cel.Value)

Next

End Sub

Function RemoveHTML(sHTML As String) As String

Dim sTemp As String
sTemp = sHTML

Dim bLeft As Byte, bRight As Byte
bRight = InStr(1, sTemp, "</")
bLeft = InStrRev(sTemp, ">", bRight)

RemoveHTML = Mid(sTemp, bLeft + 1, bRight - bLeft - 1)

End Function

关于excel - 在 Excel 中显示 MS-Access 记录的富文本格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com