VBA从Excel中两个文本字符串之间的文本框中选择和复制特定文本
在excel中,我有一个标记为textbox1的文本框。此文本框中有17个查询。它们都由开始和结束字符串分隔。例如,查询1和查询2在文本框中如下所示: 询问1_开始 从表1中选择* 问题1_结束 查询2\u开始 从表2中选择* 查询2\u结束 我试图进入textbox1,选择Query1_开始和Query1_结束之间的所有内容,并通过VBA复制它。我似乎找不到这个的语法,因为我遇到的所有与textbox相关的东西都会导致选择我不想要的所有东西 当我尝试录制一个宏时,我只在Query1_开始和Query1_结束之间进行选择,它只显示我正在输入文本框并进行选择,但不显示我正在选择的内容 更新: 我确实找到了一些VBA代码可以帮助实现这一点,但是,它取决于从文本框中选择all并将其粘贴到A列中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
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。“替换”可能会解决这个问题,但根据提供的数据,我将暂时保留答案。