VBA从Excel中两个文本字符串之间的文本框中选择和复制特定文本

VBA从Excel中两个文本字符串之间的文本框中选择和复制特定文本,excel,vba,textbox,Excel,Vba,Textbox,在excel中,我有一个标记为textbox1的文本框。此文本框中有17个查询。它们都由开始和结束字符串分隔。例如,查询1和查询2在文本框中如下所示: 询问1_开始 从表1中选择* 问题1_结束 查询2\u开始 从表2中选择* 查询2\u结束 我试图进入textbox1,选择Query1_开始和Query1_结束之间的所有内容,并通过VBA复制它。我似乎找不到这个的语法,因为我遇到的所有与textbox相关的东西都会导致选择我不想要的所有东西 当我尝试录制一个宏时,我只在Query1_开始和Qu

在excel中,我有一个标记为textbox1的文本框。此文本框中有17个查询。它们都由开始和结束字符串分隔。例如,查询1和查询2在文本框中如下所示:

询问1_开始

从表1中选择*

问题1_结束

查询2\u开始

从表2中选择*

查询2\u结束

我试图进入textbox1,选择Query1_开始和Query1_结束之间的所有内容,并通过VBA复制它。我似乎找不到这个的语法,因为我遇到的所有与textbox相关的东西都会导致选择我不想要的所有东西

当我尝试录制一个宏时,我只在Query1_开始和Query1_结束之间进行选择,它只显示我正在输入文本框并进行选择,但不显示我正在选择的内容

更新:

我确实找到了一些VBA代码可以帮助实现这一点,但是,它取决于从文本框中选择all并将其粘贴到A列中

Sub SelectBetween()
    Dim findrow As Long, findrow2 As Long

    findrow = Range("A:A").Find("Query1_start", Range("A1")).Row
    findrow2 = Range("A:A").Find("Query1_End", Range("A" & findrow)).Row
    Range("A" & findrow + 1 & ":A" & findrow2 - 1).Select

End Sub

我仍然需要VBA转到“textbox1”,然后选择“textbox1”中的全部,然后将所选内容粘贴到sheet1的A列中

比如:

Sub Test()

Dim BOX As String, STRNG As String
Dim POS1 As Long, POS2 As Long, X As Long

For X = 1 To 17
    BOX = Worksheets("Blad1").TextBox1.Value
    POS1 = InStr(1, BOX, "Query" & X & "_start")
    POS2 = InStr(1, BOX, "Query" & X & "_End")
    STRNG = Mid(BOX, Len("Query" & X & "_start") + POS1, POS2 - (POS1 + Len("Query" & X & "_start")))
    Debug.Print STRNG
Next X

End Sub

解析后的字符串中可能还有一些剩余的vbLF或vbCRLF字符。op在示例中没有提供可靠的格式。@Jeeped,True。“替换”可能会解决这个问题,但根据提供的数据,我将暂时保留答案。