VBA 合併同一資料夾下的所有表

2021-07-25 04:27:01 字數 1719 閱讀 7975

同一資料夾下由n多表,且表的格式相同,需要將表合併在一張表中,以方便統計。

sub 合同同一資料夾下的所有表()

dim r as long, c as long

r = 1

c = 3

'c的值是為了控制有幾列,可以根據實際情況調整

range(cells(r, "a"), cells(65536, c)).clearcontents '合併前先清空所在表

dim filename as string, wb as workbook, sht as worksheet, erow as long, fn as string, arr as variant, flag as integer

filename = dir(thisworkbook.path & "\*.xls") '獲取該資料夾下的所有表的表名

flag = 1

dowhile filename <> ""

if filename <> thisworkbook.name then

'為了避免合併的總表自己呼叫自己

if flag = 1

then

erow = 1

else

erow = range("a1").currentregion.rows.count + 1

'為了找出要貼上到彙總表的位置

endif

fn = thisworkbook.path & "\" & filename

set wb = getobject(fn) '在後台開啟一張表

set sht = wb.worksheets(1) '只合併該工作簿中的第一張表

if flag = 1

then

'該flag是為避免重複複製表頭而設定

arr = sht.range(sht.cells(r, "a"), sht.cells(65536, "b").end(xlup).offset(0, 9)) 'arr找到要複製的區域,執行此句時含表頭

else

arr = sht.range(sht.cells(r + 1, "a"), sht.cells(65536, "b").end(xlup).offset(0, 9)) 'arr找到要複製的區域,執行此句時不含表頭

endif

cells(erow, "a").resize(ubound(arr, 1), ubound(arr, 2)) = arr 'ubound(arr, 1)計算出行數,ubound(arr, 2)計算出列數

wb.close false

'將剛才開啟的表關閉

endif

filename = dir '執行此句時filename獲取下乙個表的表名

程式執行的彙總表需和其他的表在同乙個資料夾內;

**格式相同,合併的效果最好,不過表的格式即便不同,也可以合併,具體結合使用環境。

提取同一資料夾下所有檔案的同一列

import pandas as pd import os from pandas import series,dataframe dir r c users user pythonproject venv 資料 raw data 設定工作路徑 新建列表,存放檔名 可以忽略,但是為了做的過程能心裡有...

Python執行某一資料夾下的所有py檔案

記一段 是使用python執行某一資料夾下的所有py檔案 coding utf 8 import os 當前指令碼所在的檔案絕對路徑 cur path os.path.dirname os.path.realpath file 將當前路徑設定為python的臨時環境變數,用於命令執行,需要設定是因為...

用TreeView顯示某一資料夾下的所有目錄和檔案

網路上居然找不到現成的 特此補充一篇 關鍵字 treeview,asp.net2.0,c 檔案,目錄 public partial class admin filelist test system.web.ui.page 迴圈遍歷獲得某一目錄下的所有檔案資訊 目錄名 樹節點 private stat...