2023年12月16日 星期六

VBA程式,如何將2個特定字串間之字串取出

情境說明:
Excel表,第一列為標題列,A欄為空白,B欄為超連結文字,C欄為超連結網址(如下所示)

        A                         B                                        C
1                    examples1公司超連結簡介    https://www.example1.com.tw/Link?pageId=12345&type

想將C欄中,取出 pageId= &type 間,之數字 取出,並將它複製至 A欄位中,應該如何做


PROMPT提示訊息下法:
excel  表,第一列為標題列,請用VBA程式,將C欄位中,pageId=  右邊字串,到 &type=  為止之字串,複製到A欄位

Sub CopyString()   ' 取出網址列特定編號,自C欄位,複製至 A欄位
    Dim lastRow As Long
    Dim i As Long
    Dim str As String

    ' 取得最後一列的行數
    lastRow = Cells(Rows.Count, "C").End(xlUp).Row

    ' 逐行處理,從第二列開始
    For i = 2 To lastRow
        ' 判斷C欄位中是否包含 "pageId="
        If InStr(1, Cells(i, "C").Value, "pageId=") > 0 Then
            ' 取得 "pageId=" 右邊的字串
            str = Mid(Cells(i, "C").Value, InStr(1, Cells(i, "C").Value, "pageId=") + Len("pageId="))
            ' 判斷是否包含 "&type="
            If InStr(1, str, "&type=") > 0 Then
                ' 取得 "&type=" 左邊的字串
                str = Left(str, InStr(1, str, "&type=") - 1)
            End If
            ' 將字串複製到A欄位
            Cells(i, "A").Value = str
        End If
    Next i
End Sub