【问题标题】:VBA to select and copy specific text from a text box between two text strings in ExcelVBA从Excel中两个文本字符串之间的文本框中选择和复制特定文本
【发布时间】:2018-08-02 15:59:42
【问题描述】:

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

Query1_start

从表 1 中选择 *

Query1_end

Query2_start

从表 2 中选择 *

Query2_end

我正在尝试进入 textbox1 并选择 Query1_start 和 Query1_end 之间的所有内容并通过 VBA 复制它。我似乎找不到它的语法,因为我遇到的与文本框相关的所有内容都会导致选择所有我不想要的。

当我尝试录制一个仅在 Query1_start 和 Query1_end 之间进行选择的宏时,它只显示我正在输入文本框并进行选择,但没有显示我正在选择的内容。

更新:

我确实找到了一些有助于解决此问题的 VBA 代码,但是,它取决于从文本框中选择所有内容并将其粘贴到 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 列。

【问题讨论】:

    标签: excel vba textbox


    【解决方案1】:

    类似的东西呢:

    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 字符。该操作未在示例中提供可靠的格式。
    • @Jeeped,真的。替换可能会解决这个问题,但是根据提供的数据,我现在会留下答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多