- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
3#
發表於 2015-9-15 09:34
| 只看該作者
本帖最後由 GBKEE 於 2015-9-15 09:35 編輯
回復 2# citizen0923
試試看- Option Explicit
- Sub Ex()
- Dim Sh As Worksheet, xlWord As String, Ar(), xAr(), i As Integer, x As Integer
- xlWord = Sheets("查詢").Range("B1") '要查詢的編號
- For Each Sh In Sheets 'Sheets: 活頁簿的工作表物件集合
- If Sh.Name <> "查詢" Then
- Ar = Sh.UsedRange.Value 'UsedRange(二維陣列): 工作表使用的範圍
- For i = 1 To UBound(Ar)
- If UCase(Ar(i, 1)) = UCase(xlWord) Then
- ReDim Preserve xAr(x) '重置陣列元素的索引值,Preserve:保留原有的元素
- xAr(x) = Application.Index(Ar, i) '讀取二維陣列中元素
- x = x + 1
- End If
- Next
- End If
- Next
- With Sheets("查詢").UsedRange.Offset(4) '這範圍下移4列的範圍
- .Value = ""
- If x > 0 Then
- .Cells(1).Resize(x, UBound(Ar, 2)) = Application.Transpose(Application.Transpose(xAr))
- Application.Transpose'轉置函數
- End If
- MsgBox "查詢 " & IIf(x = 0, "不到 ", "") & xlWord & IIf(x > 0, " OK!", "")
- End With
- End Sub
複製代碼 |
|