【问题标题】:Adding text before and after selected text - VBA user form在选定文本之前和之后添加文本 - VBA 用户表单
【发布时间】:2015-08-10 13:18:05
【问题描述】:

我正在使用 VBA 用户表单,以便使用 InkEdit 控件中的富文本格式文本框来编辑一些文本。 当用户单击用户表单上的命令按钮时,我正在尝试在特定位置插入 html 标签。

例如,如果用户单击“强”按钮,则会执行以下代码并将文本插入到文本框内的光标位置:

InkEdit1.SelText = "<strong>"

我有另一个运行结束语句的按钮:

InkEdit1.SelText = "</strong>"

我正在尝试找到一种方法,将开场陈述和结束陈述一起应用。当用户从文本框中选择文本并单击按钮时,将在选择之前插入“strong”,在选择之后插入“/strong”:

【问题讨论】:

    标签: vba ms-word richtextbox userform


    【解决方案1】:

    这行得通吗:

    InkEdit1.SelText = "<strong>" & InkEdit1.SelText & "</strong>"
    

    如果你真的想花哨,可以只重选原文:

    Dim lPos As Long
    lPos = InkEdit1.SelStart
    
    Dim lLength As Long
    lLength = InkEdit1.SelLength
    
    InkEdit1.SelText = "<strong>" & InkEdit1.SelText & "</strong>"
    
    InkEdit1.SelStart = lPos + Len("<strong>")
    InkEdit1.SelLength = lLength
    

    Protip:确保“HideSelection”属性设置为“False”

    如果您没有使用实际的 RitchTextBox,请尝试以下操作:Toos > Additional Controls > check Microsoft Rich Textbox

    【讨论】:

    • 谢谢,它可以工作,但中间的文字也会改变。这是一个富文本格式的文本框,所以我想保留文本的原始格式。
    • 此文本框没有“HideSelection”属性。
    • 我的印象是您使用的是富文本框。更新帖子以包含属性的屏幕截图以及如何包含富文本框。不过,该属性不会影响代码——它只是在用户单击按钮时保持选择可见(从而失去对 RTF 的关注)。不过,代码对你有用吗?
    • 不,它的工作原理与第一个相同。如果我在选择中有彩色文本,那么在我运行它之后所有颜色都会变成黑色
    猜你喜欢
    • 2012-01-07
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多