|
今天小A在上班的時候,小B就匆忙的跑過來了,問小A說她有一個工作薄,這個工作薄中有好多個工作表,由于多人接手,格式都不一樣,但內(nèi)容都全,需要匯總,那怎么辦呢? 小A一看是小B來問呀,心里還是有絲歡喜,畢竟小B在公司內(nèi)還算個小美女嘛,愛美之心,小A也是有的嘛! 于是小A就對小B說小B呀,這個很簡單的嘛,放心,包在我心上,這么點小事嘛,以后有什么問題盡管來問我! 小B這時心里想著小A其實還不錯嘛? 小A........ ==我是分隔線,隱身如我君不見== 好了,小A已經(jīng)做夢去了,那么我們繼續(xù)來說一說工作表合并的問題!有這么一個例子如下圖所示: 通過上圖可以看到哈,我們這里有10個需要匯總的工作表數(shù)據(jù),那么說到這里呀,是不是有人就會想到這么點數(shù)據(jù)我們手動匯總不就得了嗎?10個工作表的數(shù)據(jù)是不算多,可以手動匯總,但如果100個工作表呢?1000個呢?再加上100個工作薄呢?隨心想你們也會崩潰吧? 同時,可以看到我們的工作表格式是錯亂的,想要匯總嘛,可得花點時間咯! ==我是分隔線,隱身如我君不見== 那么我們來寫一寫代碼,代碼如下所示: Sub test() '隨心 Dim sht As Worksheet, crr() On Error Resume Next arr = [a1:h1] For Each sht In Worksheets If sht.Name <> '匯總表' Then brr = sht.Range('a1').CurrentRegion For j = 1 To UBound(arr, 2) m = m 1 ReDim Preserve crr(1 To UBound(arr, 2), 1 To UBound(brr) - 1) For i = 1 To UBound(brr, 2) If arr(1, j) = brr(1, i) Then For k = 1 To UBound(brr) If IsNumeric(brr(k, i)) Or IsDate(brr(k, i)) Then n = n 1 crr(m, n) = brr(k, i) End If Next n = 0 Exit For End If Next Next End If Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(UBound(crr, 2), UBound(crr)) = Application.Transpose(crr) m = 0 Next End Sub ==我是分隔線,隱身如我君不見== 通過這段代碼我們可以看到,這些都是些基礎(chǔ)的知識,具體就不一一解釋了,我們來看一看效果,只截取了結(jié)果的一部分,如下圖所示: 那么今天的學(xué)習(xí)就到這里了,想要學(xué)習(xí)更多,可以關(guān)注公眾號,我們一起進(jìn)步,一起學(xué)習(xí)!! |
|
|