电竞比分网-中国电竞赛事及体育赛事平台

分享

合并格式混亂的工作表

 L羅樂 2016-11-20

今天小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í)!!





    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多