Excel VBA 之常規數據樣式的工作薄批量合併

2021-01-20 Excel和VBA

前景提要

好了,通過前面幾節課的學習,我們也是學會了批量合併工作薄中如何打開,如何關閉工作薄,這幾個都是常規的操作,相信有很多的小夥伴早就已經等到的不耐煩了,說了那麼多,重點的合併工作薄呢?

來來來,今天就來說

方法分析

我們先來想想看,如果人手手工操作的話,想要實現這樣的效果,我們應該如何操作呢?

首先我們人工操作的話,第一步就是打開工作薄,然後選擇當前的活動區域,活動區域的選擇我們可以使用UsedRange來選擇,因為我們已經提前輸入了標頭,所以我們在複製其他的數據的時候,就不需要再次複製標頭了,因為本案例中標頭只有一行,我們就需要向下移動一行,移動要如何實現呢?之前我們學習過移動單元格用offset,至於複製粘貼,就是copy啦,這個非常簡單,基礎代碼的框架我們前面已經寫好了,今天我們繼續補充匯總數據的代碼。

場景模擬

我們在之前模擬的數據的基礎上,繼續複雜化數據,假設我們現在有不同的銷售員在不同的商城的訂單銷售情況,同時也有香港以及部分海外地區的銷售情況,如下圖

這些數據我們都是放在一個文件夾內的,方便我們遍歷,我們現在要做的就是遍歷這個文件夾,將文件夾內的所有的工作薄的數據都匯總在test.xlsm這個工作薄內,那麼要如何實現呢?

代碼區

Sub test()

Dim pathn, sth As Workbook, rng As Range, rng1 As Range, sbook As Workbook

pathn = ThisWorkbook.Path

Set sbook = ThisWorkbook

f = Dir(pathn & "\")

Do While f <> ""

l = Cells(Rows.Count, 1).End(xlUp).Row

If f <> "test.xlsm" Then

For Each sth In Workbooks

If sth.Name = f Then

GoTo line

End If

Next sth

Workbooks.Open (pathn & "\" & f)

'=====匯總工作薄的代碼======

Set rng = ActiveSheet.UsedRange

Set rng1 = rng.Offset(1, 0)

rng1.Copy sbook.Worksheets(1).Cells(l + 1, 1)

'=====匯總工作薄的代碼======

ActiveWorkbook.Close True

End If

line:

f = Dir()

Loop

End Sub

我們來看看最終的效果

非常的完美

這裡我們成功的將所有的數據的匯總在了一個工作薄中,為了驗證數據的正確性,我隨意打開其中一個工作薄,我們的打開購物天堂香港的工作薄

許志安,馬國明等知名演員都在這裡,當然這是虛構的啦,我們來看看數據

再看看總表的數據

一個不多一個不少,完美的實現了數據的匯總,怎麼樣,小夥伴們,現在還覺得數據匯總很難嘛?

代碼分析

Set sbook = ThisWorkbook

定義一個新的工作薄的變量,方面我們後面的調用,本案例中,他就等於是test這個工作薄

Set rng = ActiveSheet.UsedRange

將當前的活動單元格複製給一個rng對象,活動區域是哪裡呢?

我們來調試下

usedrange就是代表了當前活動工作表的所有被使用的數據區域的區間,注意這裡是一個區間

我們因為已經設置好了標頭,所以這裡我們不需要再次複製標頭了,這裡我們將我們所需要的區域往下移動一行,用offset實現,來看看效果

成功的避開了標頭行,然後就是複製粘貼了。

rng1.Copy sbook.Worksheets(1).Cells(l + 1, 1)

這裡就非常的簡單了,因為我們之前已經獲得了test的最後一個非空單元格,所以我們直接調用,在最後一個非空單元格粘貼數據就好 。

後面的關閉遍歷框架在之前我們就已經寫好 。

相關焦點

  • Excel實現信息管理系統之數據錄入界面設計步驟詳解
    本身excel就是一款功能強大的數據信息管理和分析軟體,我們如果在它的基礎上在設計信息管理的功能感覺有點多此一舉。但是大家仔細想想,我們在excel錄入數據時,很多時候都是在單元格中直接輸入,亦或者使用excel記錄單錄入數據,然後再進行數據處理,這種方式對於大眾來講非常簡單快捷。但是如果我們處理的數據量大,錄入數據時有若干列,或者多人錄入時,這樣直接輸入真的會很便捷嗎?
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 共享工作薄竟能快速匯總多個excel文件,這個操作你見過嗎
    Hello,大家好,不知道大家在工作中有沒有遇到過數據的收集與匯總的工作呢?過程重複且枯燥,常常為它耗費了很多時間。今天就跟大家分享一種簡單數據匯總的方法,不用vba,也不用power query,只需要簡單的設置,設置完成後,點點滑鼠excel就會幫你自動匯總數據,下面就讓我們來一起操作下吧一、設置模板,添加功能1.設置模板首先我們需要自己設置一個數據模板來供人填寫,模板如何設置需要根據自己想要匯總的項目來設置
  • Hutool excel導出並合併單元格
    一、Hutool介紹Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以「甜甜的」。今天要講的是excel的導出並合併單元格,其他工具類,可查看參考文檔,之後也會陸續的更新一些常用工具類的用法。
  • Excel VBA 不可一世的宏中,基本數據構成你知道多少
    在上一期我們說到VBA的基本組織結構,那麼我們今天就來說說組成這些VBA代碼的磚瓦是由哪幾部分構成的,也就是說vba的處理數據的磚瓦。2.變量,這一次是很好理解,excel在處理的時候,他是可以按照一定規則去變化的。其實變量我們是看不到他變化,他的變化在計算機的內存之中。另外需要說明的一點是,變量的數據種類有很多。如下圖:我們在使用變量的時候,可以給變量定義一下他的數據類型,這樣的話我們程序執行的速度會快很多的,效率也會提升很多。
  • excel中2000行數據以行排序,你需要多長時間
    Hello,大家好,今天跟大家分享下我們如何使用錄製宏批量的按照行來對數據排序,這個之前發過視頻,但是很多粉絲表示沒看懂,今天就來詳細的介紹下這種方法一、宏是什麼宏本質上就是我們所說的vba代碼,錄製宏就是將我們的操作記錄下來,將其編譯為vba代碼,當我下次需要重複操作的時候只需要運行宏
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • 快速將excel中多列文本數據合併在一起,concatenate函數使用技巧
    2020-12-23 11:35:24 來源: 吃貨小馬甲 舉報   我們在實際工作中
  • 快速合併多個工作薄或者合併多個工作表的操作技巧
    我們在實際工作中,我們經常使用excel表格處理數據,當我們需要處理大量的數據的時候,我們可以數據分別輸入不同的表格中,不過有時候我們卻需要將不同的工作簿或者工作表數據合併到一個工作簿或者工作表裡,下面我們就以視頻的形式一起學習excel表格快速合併多個工作薄或者合併多個工作表的操作技巧
  • 技巧不求人-169期 Excel列印最常用的8大技巧 Excel合併多表數據
    嗨,大家好,上期我們介紹了Excel兩列數據找不同及如何設置保護部分工作表的內容。今天我們繼續分享,Excel文件列印是我們每天工作中都要經歷的,相信大家在列印過程中也遇到過很多問題,比如:列印出的文件版面不美觀、浪費了紙張等等,掌握合理的列印技巧不僅提高工作效率,還能節約紙張。
  • excel超級表:不用寫公式,也不用數據透視表,自動匯總統計!
    的數據進行複雜的統計分析,只需要簡單的求和、計數就可以了。這個時候,可以既不用寫公式,也不用數據透視表,就能快速完成匯總統計,這就是超級表。excel本身就是一個表格,但功能裡有一個選項也叫「表格」,因為它功能比普通表格強大,所以就被稱之為「超級表」。首先,如何轉換為超級表?要將圖中案例表格轉換為超級表。
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。
  • excel單元格操作:如何快速批量合併單元格
    都說「分久必合,合久必分」,當你在為合併單元格煩惱的時候,其他人可能在想怎麼按要求合併單元格。這不,小美就遇上合併單元格的問題了,看看我們的苗老師會怎麼解決呢?小美:「苗老師,怎麼批量合併單元格啊?」苗老師:「批量合併單元格?是啥意思?需要怎麼批量?」
  • 辦公軟體操作技巧51:如何合併多個excel表格文件
    在日常工作中,我們有時需要把編輯好的分班級成績表格文件或者分部門銷售文件,合併成一個匯總的數據表格,如下圖所示。這時也可以使用直觀的複製粘貼法,但如果表格很多的話操作起來就會比較繁瑣,今天就來給大家分享另一種合併的方法。
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數
  • 工作中為什麼有必要學點VBA
    從office97開始,VBA作為MS的標準內置配置,彌補了excel內在的基本函數不足以支持的複雜計算,提供了一種相對輕量級的、所見即所得的解決方案,濤哥在21世紀初因內部工作需要(統計代碼行數記工作量)第一次接觸了VBA,並在以後的工作中多次出色的完成相關任務,甚至給濤嫂編的幾個小程序大大提升了她們的工作效率,還受到了時任行長的讚許,現在想來還歷歷在目。
  • 如何用Excel VBA批量打開工作薄?學會你才可以批量合併工作薄
    前景提要前面我們分享了如何批量創建工作薄的方法,有了工作薄之後,我們自然是要針對工作薄進行操作了,日常工作中常用的工作薄的操作就是合併多個工作薄的內容,很多童鞋都覺得這一塊的操作非常的困難,也非常的難實現,其實並不難,今天開始,我將會帶著各位童鞋一起來學習下如何實現多個工作薄的匯總的操作的
  • 不容錯過的Pandas小技巧:萬能轉格式、輕鬆合併、壓縮數據,讓數據...
    現在,數據科學家 Roman Orac 分享了他在工作中相見恨晚的 Pandas 使用技巧。了解了這些技巧,能讓你在學習、使用 Pandas 的時候更加高效。當然是——df.to_excel(『analysis.xlsx』)需要注意的是,如果你沒有安裝過 xlwt 和 openpyxl 這兩個工具包,需要先安裝一下。另外,跟 HTML 一樣,這裡也有一個配套函數:read_excel,用來將excel數據導入pandas DataFrame。
  • 別人都在用數據分析軟體了,不要再用excel做數據分析了
    之前聽朋友吐槽過,他們是上千人的企業,但做數據分析居然還是靠手動上傳數據,而且還是用的excel做的。但其實excel並不是企業做數據分析的好工具。 數據分析是指用適當的統計分析方法對收集來的大量數據進行分析,提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。
  • excel在不同工作表中對相同類型的數量進行合併計算
    excel在不同工作表中對相同類型的數量進行合併計算合併計算不僅可以計算同一張工作表中進行計算,也可以在不同工作表中的相同區域和類型進行合併計算。解決方法:在不同工作表中對組數相同數據進行合併計算的操作方法第一步. 在【合計表格】工作表選擇【需要求和的部分】單元格區域,如圖:第二步. 再彈出【合併計算】對話框,在【引用位置】文本框中引用原數據表中求和區域,然後單擊【添加】如圖:第三步.