返回列表 上一主題 發帖

函數驗證並整合資料

回復 3# Jared
如何整合起來,可在說清楚些嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# Jared
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As String, Ar(1 To 3), A(), i As Integer, ii As Integer, X As Integer
  4.     Rng = "A1:C10"                                          '制定所有檔案在相同的範圍
  5.     Ar(1) = Workbooks("A.XLS").Sheets(1).Range(Rng).Value   '檔案是開啟的
  6.     Ar(2) = Workbooks("B.XLS").Sheets(1).Range(Rng).Value
  7.     Ar(3) = Workbooks("C.XLS").Sheets(1).Range(Rng).Value
  8.     ReDim A(1 To UBound(Ar(1), 1), 1 To UBound(Ar(1), 2))
  9.     For X = 1 To UBound(Ar(1), 2)
  10.         For i = 1 To UBound(Ar(1), 2)
  11.             For ii = 1 To UBound(Ar(1), 1)
  12.                 If ii = 1 Then
  13.                     A(ii, i) = Ar(X)(ii, i)
  14.                 Else
  15.                     A(ii, i) = IIf(A(ii, i) <> "" And Ar(X)(ii, i) <> "", "資料有誤", A(ii, i) & Ar(X)(ii, i))
  16.                 End If
  17.             Next
  18.         Next
  19.     Next
  20.     Workbooks("總表彙整.xls").Sheets(1).Range(Rng) = A
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-8-2 16:55 編輯

回復 12# Jared
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As String, Ar(1 To 3), A(), i As Integer, ii As Integer, X As Integer
  4.     '要合併 三個檔案.  -> Ar(1 To 3)
  5.     Application.ScreenUpdating = False
  6.     Application.DisplayAlerts = False
  7.     A = Array("D:\工作總表\小明.xls", "D:\工作總表\小華.xls", "D:\工作總表\小美.xls")   '路徑及檔名請依需求修改
  8.     Rng = "A1:E10"                    '定所有檔案在相同的範圍
  9.     For i = 0 To UBound(A)
  10.         With Workbooks.Open(A(i)).Sheets(1)                    'With 陳述式 在一個單一物件或一個使用者自訂型態上執行一系列的陳述式。
  11.             Ar(i + 1) = .Range(Rng).Value                         '二維陣列:第一維 = 工作表的列,第二維 = 工作表的欗,
  12.             .Parent.Close
  13.         End With
  14.     Next
  15.     ReDim A(1 To UBound(Ar(1), 1), 1 To UBound(Ar(1), 2))   '陣列 重新配置 維數及維數元素之上下限索引值-> "A1:E10" 的大小
  16.     For X = 1 To UBound(Ar)
  17.         For i = 1 To UBound(Ar(1), 2)                       '欄
  18.             For ii = 1 To UBound(Ar(1), 1)                  '列
  19.                 If ii = 1 Or i = 1 Then
  20.                     A(ii, i) = Ar(X)(ii, i)                 '第1列 或 第1欗
  21.                 Else
  22.                     If Ar(X)(ii, i) <> "" Then A(ii, i) = A(ii, i) + 1  '有資料 + 1
  23.                 End If
  24.             Next
  25.         Next
  26.     Next
  27.     Workbooks("旅遊地點統計.xls").Sheets(1).Range(Rng) = A
  28.     Application.ScreenUpdating = True '結束後更新螢幕
  29.     Application.DisplayAlerts = True
  30. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題