- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# boblovejoyce
抓取符合條件的"第一筆", 不清楚你的邏輯 ,試試看- Option Explicit
- Sub Ex()
- Dim Ar() As Variant, Ay() As Variant, i As Single, Msg As Variant
- With Sheet1
- Ar = .Range(.Cells(2, 10), .Cells(Rows.Count, 10).End(xlUp)) '陣列元素由儲存格取得為二維陣列
- Ar = Application.WorksheetFunction.Transpose(Ar) '轉置為一維陣列
- If Join(Ar, "") = "" Then 'Join 函數 傳回一個字串,該字串是透過連結某個陣列中的多個子字串而建立的。
- MsgBox "沒資料"
- Exit Sub
- End If
- ReDim Ay(1 To UBound(Ar)) '同Ar大小的陣列
- For i = 1 To UBound(Ar)
- With .[A:A]
- 'After:=.Cells(.Cells.Count) 從最後一個儲存格
- If Not .Find(Ar(i), After:=.Cells(.Cells.Count), lookat:=xlPart) Is Nothing Then
- Ay(i) = .Find(Ar(i), After:=.Cells(.Cells.Count), lookat:=xlPart)
- Ay(i) = Right(Ay(i), Len(Ay(i)) - IIf(Len(Ay(i)) > 7, 7, 0))
- End If
- End With
- Next
- .Cells(2, 11).Resize(UBound(Ar), 1).Value = Application.WorksheetFunction.Transpose(Ay)
- '陣列元素由左而右:由上而下須轉置
- End With
- End Sub
複製代碼 |
|