繁体   English   中英

如何在文本框VB6 / VBA中的文本之间插入文本

[英]How to insert text in between texts in Textbox VB6/VBA

我想在文本框中的现有文本之间插入一些文本(新行)(multiline = true)。


示例:(Textbox1.text的值写在下面)

名称:客户名称

DOB:11/11/11

>>>这就是我要插入TEXTBOX2.TEXT值的地方

住院:否

序列号:12345678


Private Sub cmdTransfer_Click()
   Dim SearchNote As Integer, SearchThis As String, tx2 As String

   If cb9.Value = True Then
        tx2 = "ADDRESS: " & vbTab & text2.Text & vbCrLf
   End If

   SearchThis = "Hospitalization"
   SearchNote = InStr(Textbox1.Text, SearchThis)

   If SearchNote Then
       With textbox1
          .SetFocus
          .SelStart = SearchNote
          .Text = .Text & .SelStart & tx2
       End with
   End If

End Sub

我在代码中所做的是在“医院化”之前获取字符数,以便可以在其前面插入Textbox2的值。 我不知道该怎么做。 请帮忙。

谢谢!

我相信您正在寻找的代码是这样的:

Left(SearchNote, InStr(1, SearchNote, "Hospitalization") - 1) & "new text to insert" & Mid(SearchNote, InStr(1, SearchNote, "Hospitalization"))

Left将把前几个字母带到“住院治疗”的起点。 然后插入新字符串(可以在& chr(10) &之前和之后插入新行)。 然后,将“住院”之后的所有内容添加到Mid

由于我没有电子表格的样本副本,因此我的一个/某些变量可能会有所不同。 如果您发现任何这些问题,请检查所有变量。

解决方案1:创建模块并添加以下功能:

Function addText(txtBox As String, addString As String)
    Dim endIndex As Long
    Dim SearchThis As String
    Dim input1, input2, input3 As String

    SearchThis = "Hospitalization"

    ' Get index of Hospitalization
    endIndex = InStr(1, txtBox, SearchThis) - 1

    If endIndex > 0 Then
        input1 = Mid(txtBox, 1, endIndex)
        input2 = addString & vbNewLine
        input3 = Mid(txtBox, endIndex, Len(txtBox))

        ' Return with added text
        addText = CStr(input1 & input2 & input3)
    End If
End Function

然后调用您的按钮以更新您的文本框:

Private Sub cmdTransfer_Click()
    Dim tx2 As String

    If cb9.Value = True Then
        tx2 = "ADDRESS: " & vbTab & text2.Text & vbNewLine
    Else
        ' Stop if there is nothing to add
        End
    End If

    If textbox1.Value <> vbNullString Then
        textbox1.Value = addText(textbox1.Value, tx2)
    End If
End Sub

解决方案2:通过按钮调用所有内容:

Private Sub cmdTransfer_Click()
    Dim endIndex As Long
    Dim SearchThis As String
    Dim input1, input2, input3 As String
    Dim txtBox As String, tx2 As String

    'set tx2
    If cb9.Value = True Then
        tx2 = "ADDRESS: " & vbTab & text2.Text & vbNewLine
    Else
        ' Stop if nothing to add
        End
    End If

    If textbox1.Value <> vbNullString Then
        ' set txtBox variable
        txtBox = textbox1.Value
    Else
        ' Avoid Error if text box is null
        End
    End If

    SearchThis = "Hospitalization"

    ' Get index of Hospitalization
    endIndex = InStr(1, txtBox, SearchThis) - 1

    If endIndex > 0 Then
        input1 = Mid(txtBox, 1, endIndex)
        input2 = tx2 & vbNewLine
        input3 = Mid(txtBox, endIndex, Len(txtBox))

        textbox1.Value = input1 & input2 & input3
    End If

End Sub

我要做的是将text1拆分为一个数组,然后在中间添加文本,mainString是text1,midStr是text2:

Dim mainStr as String, midStr as String, ArreStr() as String

mainStr=text1.text:midStr=text2.text
ArreStr=Split(mainStr,VBNewLine)
text1.text=ArreStr(0) & vbnewline & midStr & vbnewline & ArreStr(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM