返回列表 上一主題 發帖

想請教,從多個活頁簿找到關鍵字後複製下一列,但一直有錯誤

本帖最後由 GBKEE 於 2014-12-26 15:06 編輯

回復 1# hasrhgni
Application.Transpose ,陣列的元素字元數大於255 個字元,會有錯誤
  1. Option Explicit
  2. Sub Ex()
  3. Dim Ar(), i%, C$, A As Range, XX As Integer, Msg As Boolean
  4. Dim S As Integer
  5.     With Sheets(1) '第一張工作表
  6.         C = "身分證或統一證號" '要篩選的值
  7.         For i = 2 To Sheets.Count '從第2張工作表開始回圈
  8.             With Sheets(i)
  9.                 For Each A In .UsedRange.Columns(1).Cells 'A欄已使用儲存格做迴圈
  10.                     If A = C Then '如果與要篩選的值相同
  11.                         ReDim Preserve Ar(S)
  12.                         '****  除錯程式  找出欄寬限制在 255 個字元以外的儲存格 ********
  13.                         Msg = False
  14.                         For XX = 1 To 11
  15.                             ' 欄寬限制在 255 個字元以內
  16.                             If Len(A(2, XX)) > 255 Then
  17.                                 Sheets(i).Activate
  18.                                 A.Select
  19.                                 Debug.Print Sheets(i).Name & " 工作表 [" & A.Address & "]"
  20.                                 Debug.Print A(2, XX)
  21.                                 Debug.Print "字元:" & Len(A(2, XX))
  22.                                 Msg = True
  23.                             End If
  24.                         Next
  25.                         If Msg Then
  26.                             Debug.Print
  27.                             Application.VBE.Windows("即時運算").Visible = True
  28.                             Stop
  29.                         Else
  30.                             Application.VBE.Windows("即時運算").Visible = False
  31.                         End If
  32.                         '************  除錯結束  ****************************************
  33.                         Ar(S) = A.Offset(1).Resize(, 11) '將該列A:J欄寫入陣列
  34.                         S = S + 1
  35.                     End If
  36.                 Next
  37.             End With
  38.         Next
  39.         .[A4].CurrentRegion.Offset(1).ClearContents '清除舊有資料
  40.         If S > 0 Then .[A5].Resize(S, 11) = Application.Transpose(Application.Transpose(Ar)) '若有符合項目則寫入工作表1的A7以下位置
  41.     End With
  42. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表 上一主題