- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2026-5-26
|
16#
發表於 2021-3-29 07:55
| 只看該作者
回復 13# BV7BW
Sub tt1()
Dim Arr, i&, N%, T, pos%, pos2%, pos3%
Sheets("工作表2").Range("A4:D1000") = "" '清除工作表2的資料
T = [工作表2!C2] '查找字
Arr = Range([工作表3!G1], [工作表3!D65536].End(3)) '將工作表3資料D~G欄位資料放在數組中
For i = 2 To UBound(Arr)
pos = InStr(Arr(i, 1), T): pos2 = InStr(Arr(i, 2), T)
pos3 = InStr(Arr(i, 3), T) '查詢字確認有無在工作表3的D、E、F欄
If pos > 0 Or pos2 > 0 Or pos3 > 0 Then '有找到時
N = N + 1: Arr(N, 1) = Format(N, "00") '有資料時Arr的第1欄位,自動產生序號
For j = 2 To 4: Arr(N, j) = Arr(i, j - 1): Next '將工作表3資料D、E、F欄資料暫時存放在Arr
End If
Next
If N > 0 Then '確認有無找到資料
With Sheets("工作表2")
.Range(.[A4], .Cells(N + 3, 1)).NumberFormatLocal = "@" 'A欄改為文字格式
.[A4].Resize(N, 4) = Arr '有找到資料救回填至工作表2
End With
End If
End Sub |
|