dim r % I %
昏暗排列,brr
Dim d作為對象
將wb標註為工作簿
將ws標註為工作表
Dim我的路徑$,我的名稱$
Dim reg作為New RegExp '的上半部分是定義變量。聲明reg正則表達式對象。
Set d = createobject("腳本。字典")'定義了壹個字典。
帶註冊
。“global = False”reg正則表達式對象將在只找到壹個對象時停止。如果它們想要完全匹配,應該在這裏設置為TRUE。
。pattern = "(\d+) \。(\ d+) \。XLS$ " '這個原則是正則表達式模式,中間的點匹配除“\n”以外的任何單個字符,(\ d+)這個匹配多個數字字符,XLS $表示以xls結尾。
以…結尾
使用工作表(" sheet1 ")'在工作表(" sheet1 ")中執行以下操作。
R =。單元格(行數,1)。結束(xlup)。“行”計算表中使用的行。
arr =。範圍(" a 1:af " & amp;r)'給ARR數組賦值。
For i = 1到UBound(ARR)' ARR數據中的循環。
If Len(arr(i,1))& lt;& gt0 Then '如果(arr(i,1))單元格的內容長度不為空。
D(arr(i,1)) = i '將單元格arr(i,1)的內容作為關健字符添加到字典中,I表示字典中對應的條目。
如果…就會結束
然後
以…結尾
mypath = ThisWorkbook。路徑與路徑。“\" 'mypath等於操作工作表的路徑。
my name = Dir(my path & amp;"*.xls") 'myname等於路徑以*.xls結尾的工作表。
當我的名字& lt& gt如果myname的值不為空,則為。
如果註冊。test(my name)t reg正則對象是否與內容匹配。
設置mh = reg。Execute(myname)'將匹配的內容分配給mh。
N = val (MH (0))。SubMatches(1))+1 ' n = val函數返回的字符串中包含的值加上1,mh(0)。SubMatches(1)這裏的表達式是MH的第壹個值中SubMatches返回的值。
set WB = GetObject(my path & amp;我的名字)
帶wb
與。工作表("新匯總表")'打開工作表。
brr =。範圍(" a6:y47 ")
對於i = 1至欠載(brr)
如果D .存在(brr(i,1)) T如果BRR (I,1)值的內容存在於D字典中。
M = d(brr(i,1))'設置M=Dbrr(i,1)對應的項。
Arr(m,n) = brr(i,21)'給Arr賦值等於brr(i,21)。
如果…就會結束
然後
以…結尾
。關閉假
以…結尾
如果…就會結束
' Myname = Dir()'依次打開符合條件的工作表。
環
帶工作表(“sheet1”)
。範圍(" a1 ")。resize (ubound (ARR),ubound (ARR,2)) = arr '將前面表格的內容賦給ARR。
以…結尾
最後,這個程序要依次打開壹個文件夾中的工作表,將符合要求的數據匯總到壹個新的工作表中。