基于带有VBA值的自动格式化单元格

问题描述 投票:0回答:1

我正在为我的团队开发一个数据库查询工具,但遇到了一个小麻烦,但我无法解决。这个人烦我了一段时间!

从数据库返回的

问题: 感兴趣的文本采用RTF格式(带有格式标记)。我想将其格式化(理想情况下)或仅显示纯文本(不理想)。我知道Excel可以做到这一点,因为我要做的就是单击单元格,它会自动进行格式化。我想通过VBA在后端实现这种自动格式化。

查询文本示例:

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}

{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\lang1033\f0\fs16 Some text will be right here.\par   

}

[单击单元格时记录宏:这没有提供一般的解决方案。它显示了已完成的所有格式设置,但这特定于单元格。

ActiveCell.FormulaR1C1 = "Some text will be right here." & Chr(10) & "  "

这对我没有帮助。

我已经尝试了一些我在互联网上看到的内容;没有一个有效。具体来说,选择我想要格式化的单元格并引发击键(F2,Enter),计算单元格,也许还有另一种解决方案。

你们都在想什么?

excel vba rtf
1个回答
0
投票

也我也发送密钥,keybd_eventSendkeys更可靠。这对我有用

Option Explicit

' https://stackoverflow.com/a/49065905/6600940
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

' http://www.vbforums.com/showthread.php?277384-VB-Key-COnsts
Public Const VK_F2 = &H71
Public Const VK_RETURN = &HD

Sub ParseAllRange()
    Dim rngCell As Range
    Application.ScreenUpdating = False
    For Each rngCell In Range("B13:B19")
        rngCell.Select
        keybd_event VK_F2, 0, 0, 0
        keybd_event VK_RETURN, 0, 0, 0
        DoEvents
    Next
    Application.ScreenUpdating = True
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.