如何在某个字符出现之前将文本添加到文本框?

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

现在,我有一个文本框,在添加的文本周围添加文本指示符。例如,当有人写“他是爸爸”时,使用以下代码会显示为“注意(出售):他是爸爸 (8/27/2024)(5:44:00pm)(3608)”:

If Not Mark1.NEWCALLHISTORYTEXTBOX.Value = "" And Not InStr(Mark1.NEWCALLHISTORYTEXTBOX.Value, "NOTE ") > 0 Then Mark1.NEWCALLHISTORYTEXTBOX.Value = "NOTE (" & Mark1.NEWDISPODROPDOWN.Value & "): " & Mark1.NEWCALLHISTORYTEXTBOX.Value & " (" & Date & ")" & "(" & Time & ")" & "(" & Mark1.REPNUMBERTEXTBOX.Value & ")."

我的问题是,当用户表单上的其他内容发生更改时,我希望能够更改文本框的某些部分,而不更改其周围的整个注释。

例如,当“Mark1.NEWDISPODROPDOWN.Value”中的值发生变化时,我希望它只更新字符串中的该部分而不更改其他任何内容。

我不知道只指定该区域,并且很难弄清楚。

excel vba userform
1个回答
0
投票

如果我是对的,

SALE
来自样本中的Mark1.NEWDISPODROPDOWN.Value。提供代码将“SALE”更新为“NewText”。

Sub demo()
    Dim sTxt, sNewTxt, arrText1, arrText2
    sTxt = "NOTE (SALE): He is a dad (8/27/2024)(5:44:00pm)(3608)"
    arrText1 = Split(sTxt, ")")
    arrText2 = Split(arrText1(0), "(")
    arrText2(1) = "NewText" ' Mark1.NEWDISPODROPDOWN.Value
    arrText1(0) = Join(arrText2, "(")
    sNewTxt = Join(arrText1, ")")
    Debug.Print sNewTxt
End Sub

如果总是有相同的模式

NOTE (xx):..
,代码可能会更简单。

Sub demo()
    Dim sTxt, sUpdateText
    sTxt = "NOTE (SALE): He is a dad (8/27/2024)(5:44:00pm)(3608)"
    sUpdateText = "NewText" ' Mark1.NEWDISPODROPDOWN.Value
    sNewTxt = "NOTE (" & sUpdateText & Mid(sTxt, InStr(sTxt, ")"))
    Debug.Print sNewTxt
End Sub

输出

NOTE (NewText): He is a dad (8/27/2024)(5:44:00pm)(3608)
© www.soinside.com 2019 - 2024. All rights reserved.