批量導入工作表到同一個文件

2020-12-22 VBA語言專家

今日的內容是「VBA之EXCEL應用」的第三章「工作簿(Workbook)和工作表(Worksheet)對象(Object)」中第六節「批量導入工作表到同一個文件」。「VBA之EXCEL應用」這套教程從簡單的錄製宏的講解,一直到窗體的搭建,內容豐富,案例眾多。大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。

第六節 批量導入工作表到同一個文件

大家好,我們在上節講解了如何提取一個文件夾下面的文件名及每個文件的工作表的名稱到工作表中,這講我們將講解如何把一個文件夾下的所有文件的工作表導入到同一個文件中,這講將講解的知識點有:工作表的整體導入方法,以及如何關閉例外提示的信息。

1 實現批量導入工作表的場景分析

我們在實際工作中,經常會用到把多個文件的工作表批量複製到同一個文件中,如下,在當前路徑的文件夾「導入文件」中有若干個文件:

我們的目的是將每個文件中的工作表逐一複製到同一個文件中,形成一個文件。這講我們將講解這個問題的代碼實現過程。

2 實現批量導入工作表的思路分析

為了實現批量導入工作表,我們仍是利用文件夾中文件的遍歷及每一個文件中工作表的遍歷,在實現遍歷的時候要進行的是工作表的複製,然後粘貼到同一個文件中。對於複製和粘貼工作表我們要利用的是工作表複製語句。

對於工作表的複製和粘貼,有時會有異常信息的提示,這是我們所不期望的,這就要屏蔽這些信息。也是利用VBA代碼來完成這項工作。

3 工作表的複製和粘貼(Worksheet.Copy方法)

將工作表複製到當前工作簿或新工作簿中的其他位置,我們可以用Worksheet.Copy 方法

1)語法:expression.Copy (Before, After)

2)參數:

① Before 可選 Variant類型 將要在其之前放置所複製工作表的工作表。如果指定After, 則不能指定Before。

② After 可選 Variant類型 將要在其之後放置所複製工作表的工作表。 如果指定了 Before,則不能指定 After。

3)使用說明:如果不指定Before或After, Microsoft Excel 將新建一個工作簿, 其中包含複製的工作表對象。新創建的工作簿包含ActiveWorkbook屬性, 並且包含一個工作表。 單個工作表保留源工作表的Name 和CodeName 屬性。如果複製的工作表在VBA 項目中包含一個工作表代碼工作表, 則該工作表也會進入新工作簿中。

4 屏幕刷新(ScreenUpdating)及例外信息提示(DisplayAlerts)

1) Application.ScreenUpdating 屬性 如果屏幕更新已啟用,此屬性的值為 True。

語法:expression.ScreenUpdating

參數:expression 表示 Application 對象的變量。

禁用屏幕更新可以加快宏代碼的速度。雖然無法實時了解宏的最新動態,但它的運行速度會變快。當宏結束運行後,請記住將 ScreenUpdating 屬性設置回 True。

2)Application.DisplayAlerts 屬性 如果宏運行時 Microsoft Excel 顯示特定的警告和消息,則為 True。

語法: expression.DisplayAlerts

參數:expression表示 Application 對象的變量。

expression.DisplayAlerts默認值為 True。 將此屬性設置為 False 可在宏運行時禁止顯示提示和警告消息;當出現需要用戶應答的消息時,Microsoft Excel 將選擇默認應答。如果將此屬性設置為False,要將代碼完成時將此屬性設為True。5 實現批量導入工作表的代碼及代碼的運行效果

為了實現工作表的批量導入,我先給出下面的代碼,然後再進行講解:

Sub mynzK() '導入工作表

Dim directory As String, myfileName As String, mysheet As Worksheet

Application.ScreenUpdating = False

Application.DisplayAlerts = False

directory = ThisWorkbook.Path & "\導入文件\"

myfileName = Dir(directory & "*.xl??") '使用Dir函數來查找存儲在此目錄中的第一個*.xl??文件

Do While myfileName <> ""

Workbooks.Open (directory & myfileName)

For Each mysheet In Workbooks(myfileName).Worksheets

total = ThisWorkbook.Worksheets.Count

Workbooks(myfileName).Worksheets(mysheet.Name).Copy _

after:=ThisWorkbook.Worksheets(total)

Next

Workbooks(myfileName).Close '關閉Excel文件

myfileName = Dir() '獲取其他Excel文件,再次使用Dir函數而不帶參數

Loop

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub

代碼截圖:

代碼講解:

1) Application.ScreenUpdating = False

Application.DisplayAlerts = False

以上代碼將關閉屏幕更新及例外信息提示,在程序結束後,要打開這個設置,值為true。

2) total = ThisWorkbook.Worksheets.Count

變量total跟蹤導入的工作表的工作表數,我們最後將使用Worksheet對象的Copy方法複製每個工作表並將其粘貼到ThisWorkbook最後一個工作表之後。

3)Workbooks(myfileName).Worksheets(mysheet.Name).Copy _

after:=ThisWorkbook.Worksheets(total)

以上代碼將複製myfileName工作簿中的每個工作表,然後粘貼到當前工作簿的最後位置。

代碼運行效果:

從上圖中可以看出,文件夾中所有文件的工作表都拷貝到了當前的工作簿中了。

今日內容回向:

1 如何關閉屏幕刷新及例外信息提示?

2 如何導入整個工作表到當前工作簿?

3) 遍歷循環應用在這講有什麼作用?

本講內容參考程序文件:工作簿03.xlsm

分享成果,隨喜正能量

VBA的應用範圍及學習方法:

VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我對VBA的應用界定。在取代OFFICE新的辦公軟體沒有到來之前,誰能在數據處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!

我記得20年前自己初學VBA時,那時的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了七部VBA專門教程。

第一套:VBA代碼解決方案 是VBA中各個知識點的講解,教程共147講,覆蓋絕大多數的VBA知識點,提供的程序文件更是一座不可多得的代碼寶庫,是初學及中級人員必備教程;目前這套教程提供的版本是修訂第二版,程序文件通過32位和64位兩種OFFICE系統測試。

第二套:VBA資料庫解決方案 資料庫是數據處理的專業利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,適合中級人員的學習。目前這套教程提供的是修訂第一版教程,程序文件通過32位和64位兩種OFFICE系統測試。

第三套:VBA數組與字典解決方案 數組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學習,是初級及中級人員代碼精進的手段。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第四套:VBA代碼解決方案之視頻 是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的視頻講解,視頻更易接受。

第五套:VBA中類的解讀和利用是一部高級教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。這套教程的領會主要是讀者的領悟了,領悟一種佛學的哲理。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第六套教程:VBA信息獲取與處理,是一部高級教程,涉及範圍更廣,實用性更強,面向中高級人員。教程共二十個專題,包括:跨應用程式信息獲得、隨機信息的利用、電子郵件的發送、VBA網際網路數據抓取、VBA延時操作,剪切板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定製工作表信息函數等等內容。程序文件通過32位和64位兩種OFFICE系統測試。

第七套教程:VBA之EXCEL應用 這是一部初級教程這部教程共三冊,從從創建宏、對話框、工作簿和工作表對象、單元格對象等基礎內容講起,到循環結構、錯誤處理、字符串操作、日期和時間、事件、數組應用,函數過程等方面,一直講解到控制項和窗體對象的應用都是我們提高自己EXCEL水平的必須。

以上各教程學習順序:7 1 3 2 6 5或者7 4 3 2 6 5。其中第四套是對第一套的視頻講解,所以第一和第四隻選其一即可。

相關焦點

  • Excel表格如何批量合併工作表呢?
    Excel表格如何批量合併工作表呢?工作表很多的時候,一個一個打開瀏覽很麻煩,那麼有什麼方法可以合併多個工作表,這樣就可以一次性瀏覽多個工作表了,提高工作效率呢?那麼下面小編就簡單介紹一下Excel表格如何批量合併工作表,希望能幫到您。
  • Excel表格快速匯總多個工作表的數據到同一個工作表
    要求:在一個工作簿種有很多個工作表在相同的單元格中儲存著需要匯總的數據,根據需求要把這些數據匯總到同一張工作表裡,合併後的效果如下圖所示。操作步驟:一.使用宏表函數批量獲取工作表名稱 切換到公式選項卡---點擊自定義名稱---在名稱框裡輸入gzbm、範圍選擇工作簿、引用位置裡輸入公式=get.workbook(1)----點擊確定。
  • 使用VBA自動生成文件目錄製作文件管理系統
    以下是詳細步驟:一、建立界面表格1、創建工作表,將自己所需的項目添加進去,如下圖。2、在該工作表中插入一個Active X按鈕控制項,然後在該控制項click事件下寫入如下代碼:Private Sub CommandButton1_Click()Dim i As Integer
  • 如何使用JavaScript實現前端導入和導出excel文件
    使用JavaScript實現前端導入excel文件並自動生成可編輯的Table組件在開始實現之前, 我們先來看看實現效果.1.1 實現效果導入excel文件並通過antd的table組件渲染table: 編輯table組件: 保存table數據後實時渲染可視化圖表: 以上就是我們實現導入excel文件後, 編輯table,
  • 《桌面萌娘MMD》怎麼導入VMD動作文件 導入VMD動作文件方法說明
    桌面萌娘MMD怎麼導入VMD動作文件?想來很多朋友都還不是很清楚吧,所以呢小編今天給大家帶來的就是桌面萌娘MMD導入VMD動作文件方法說明,需要的朋友不妨進來看看。 桌面萌娘MMD導入VMD動作文件方法說明 MMD的動作數據文件.VMD文件導入到DesktopMMD很簡單,只需要下載安裝Unity後,
  • 「Excel技巧」Excel批量提取當前工作簿下的所有工作表名稱
    原來,提取當前工作簿的所有工作表名稱幾個簡單步驟就可以批量快速搞定,簡直太方便了。現在簡單分享一下。批量提取工作表名稱,有兩種方法,一種是使用公式法實現,一種是使用VBA代碼實現。現在我們舉實例說明一下操作方法。
  • 標籤製作軟體中如何批量導入名稱是流水號的圖片
    之前我們講過在標籤製作軟體中導入單個圖片(矢量圖、位圖圖片)的方法,如果想要將多張圖片批量導入到軟體中,應該怎麼做呢?下面我們先來說一下在標籤製作軟體中如何批量導入圖片名稱為流水號的JPG位圖圖片。1.打開標籤製作軟體,在文檔設置中根據實際紙張設置紙張尺寸和標籤尺寸。
  • 如何將SRT文件導入PR生成字幕
    本文適用場景:SRT文件導入PR 。(PR CC 2017及以上版本支持SRT導入)本文使用版本:PR CC 2018。具體操作如下:1. 導入。將在「繪影字幕」中導出的SRT文件和視頻文件導入PR CC 2017及以上版本中。(PR CC 2017有很多bug,有些操作無法完成,建議使用2018及以上版本。)2.
  • 一個公式搞定數據信息按類別拆分到不同工作表
    一.實例要求:把下圖所示的名稱為「信息表」的工作表中的內容按班級拆分到不同的工作表裡。"filename",A1),FIND("]",CELL("filename",A1))+1,50)②公式解析:首先使用FIND函數查找到工作簿名稱結束的位置;然後用MID函數提取(1)所述的字符串、開始位置是「]」出現的位置+1、提取的長度是50(也可以設置更長);mid函數提取時會忽略最後的空白內容,從而實現只提取工作表名稱的效果
  • 教你快速把b站緩存視頻批量導入本地電腦
    B站視頻批量導入本地電腦,想要快速完成批量保存視頻的操作,一般小編會直接用第三方工具來下載,這樣的話,效率翻好幾倍。接下來小編帶你了解下,批量獲取視頻的方法。1、下載這個小工具先,用工具名字可以搜索到,下載到電腦。
  • 如何使用argparse模塊批量修改文件後綴
    如何使用argparse模塊批量修改文件後綴?今天番茄加速就來分享argparse模塊的主要用法。導入模塊import argparseimport os定義腳本參數def get_parser():parser = argparse.ArgumentParser(description='工作目錄中文件後綴名修改')parser.add_argument('work_dir', metavar
  • Excel辦公技巧:快速將同一工作簿中的工作表名稱整理成目錄
    應用場景下圖工作簿中有多個工作表,我們想將紅色方框標註的幾個工作表名稱整理成目錄列表,放在工作簿最左側的工作表「案例目錄」中,有沒有什麼便捷的方法呢?下面我們一起來看一下。操作步驟1.在「案例目錄」工作表中,選中要存放工作表名稱的起始單元格A2,在「數據」選項卡「獲取和轉換」功能組中單擊「新建查詢」按鈕,在彈出的下拉列表中依次單擊「從文件」-「從工作簿」。
  • Sketchup文件怎樣導入到SolidWorks中?
    有朋友問我:Sketchup文件如何導入到SolidWorks中?在這裡我整理了一下具體的操作方法。先看看兩款軟體,Sketchup是景觀、建築設計用的3D軟體,SolidWorks是機械設計用的3D軟體,它們的文件格式確實不能直接通用,所以一般Sketchup文件導入到SolidWorks中,要藉助其他軟體。下面是我的日常操作方法,我藉助的是meshlab這個軟體(其他類似軟體均可)。
  • 怎麼將圖片批量轉換成PNG格式?
    怎麼將圖片批量轉換成PNG格式?當我們下載了一款PDF轉換器,以為從此無論遇到PDF要轉換成哪種格式,都可以輕鬆搞定的時候,但結果往往不如人意。軟體提供的不只是圖片轉化功能,還有不同圖片格式批量轉換的功能,我們日常用到的HEIC、JPG、JPEG、GIF、BMP、ICON、TIF、TIFF和PNG在內的九種圖片格式,都可以在迅捷PDF轉換器中進行轉換,點擊添加文件夾,將圖片導入進來。
  • 「Excel技巧」用VBA法給單元格批量插入圖片批註
    這時,我們就要考慮更高效的辦法,比如:批量插入圖片批註。關鍵如何實現?用VBA代碼就可以實現這就是今天我要跟大家分享的主題:excel用VBA代碼實現單元格批量插入圖片批註。具體操作方法,如下:一、準備產品圖片1、先準備好要插入單元格批註的產品圖片,將其放在同一個文件夾下,並確保圖片名稱和表格中的產品名稱一樣對應;2、將存放產品圖片的文件夾放在跟準備插入批註的excel文件同一目錄下面
  • Excel基礎知識:多個不同結構,不同數據的工作表,快速合併技巧
    工作描述電子表格有三個工作表,它們的結構和數據各不相同,其中表一和表二,標題相同,數據不同,表三的標題和數據與前兩個表完全不同,現在要把這三個表匯總到一個工作表內。需要搜索:Power Query,到微軟官方網站下載並安裝。新版Excel,點擊數據,點擊獲取數據,這些菜單都可以啟動Power Query。
  • 3dmax插件|怎麼把CAD施工圖設計文件導入到3dmax效果圖的場景中?
    在進入3dmax效果圖工作場景後,需要導入CAD文件、以便對CAD二維戶型進行返圖。返圖到三維軟體3dmax中,就需要先開啟3dmax場景菜單的「導入場景」、然後開始執行該菜單下各種命令操作,每個步驟都可以是單獨的「騷操作」。
  • 小技能,教你一鍵批量給圖片添加同一個水印!
    沒關係,下面重點來啦,小編馬上給大家安利一款工具,可以批量處理圖片,同時給多張圖片加上相同水印。操作相當便捷,就算是電腦小白也能快速學會哦,那麼如何批量給圖片添加水印呢?快來看看吧!第一步、雙擊打開以下軟體,在左側選擇「添加水印」功能。第二步、接著,點擊「添加文件夾」(將所有需要添加水印的圖片封裝在同一個文件夾,方便處理),添加需要處理的圖片文件夾。
  • 通訊錄導入助手
    產品簡介: 本產品是一款通訊錄同步助手,可以快速的將excel聯繫人導入到手機通訊錄中.也可將手機聯繫人導出到excel通訊錄,還可將excel聯繫人發送到qq或微信進行導入,真正的做到通訊錄資源共享
  • Excel辦公技巧:如何快速在工作簿不同工作表之間進行連結跳轉?
    比如我們點擊下面圖1「目錄」工作表B2單元格中的文本「定位空單元格」,就能自動跳轉到對應的「定位空單元格」工作表;在圖2「定位空單元格」工作表中單擊I1單元格中的文本「返回目錄」,就自動跳轉到「目錄」工作表。下面我們就來學習如何利用HYPERLINK函數實現上述效果。