把excel中的資料,按條件分割成多個檔案
要求
有個excel檔案,把檔案中的資料按照某列,將相同的資料存為一個excel檔案。
VBA程式碼
執行下面的程式碼後,會在該excel的同級目錄下建立一個新資料夾“拆分出的表格”,拆分後生成的新檔案會存在這個目錄下。
我拆分了30個檔案,大約一分鐘時間。請耐心等待。
如果你感覺沒有進度,你可以看一下同級目錄下“拆分出的表格”資料夾中是否在緩慢生成新的檔案。
Sub 拆分成多個檔案()
'輸入使用者想要拆分的工作表
Dim sheet_name
sheet_name = Application.InputBox("請輸入拆分工作表的名稱:")
Worksheets(sheet_name).Select
'輸入獲取拆分需要的條件列
Dim col_name
col_name = Application.InputBox("請輸入拆分依據的列號(如A):")
'輸入拆分的開始行,要求輸入的是數字
Dim start_row As Integer
start_row = Application.InputBox(prompt:="請輸入拆分的開始行:", Type:=1)
'暫停螢幕更新
Application.ScreenUpdating = False
'工作表的總行數
Dim end_row
end_row = Worksheets(sheet_name).Range("A65536" ).End(xlUp).Row
'遍歷計算所有拆分表,每個拆分表的格式為"表名稱,錶行數"
'對於二維陣列,ReDim只能擴充最後一維,因此sheet_map行不變,擴充列
Dim sheet_map(), sheet_index
ReDim sheet_map(1, 0)
sheet_map(0, 0) = Range(col_name & start_row).Value
sheet_map(1, 0) = 1
sheet_index = 0
With Worksheets(sheet_name)
Dim row_count, temp, i
row_count = 0
For i = start_row + 1 To end_row
temp = Range(col_name & i).Value
If temp = Range(col_name & (i - 1)).Value Then
sheet_map(1, sheet_index) = sheet_map(1, sheet_index) + 1
Else
ReDim Preserve sheet_map(1, sheet_index + 1)
sheet_index = sheet_index + 1
sheet_map(0, sheet_index) = temp
sheet_map(1, sheet_index) = 1
End If
Next
End With
'根據前面計算的拆分表,拆分成單個檔案
Dim row_index
row_index = start_row
For i = 0 To sheet_index
Workbooks.Add
'建立最終資料資料夾
Dim dir_name
dir_name = ThisWorkbook.Path & "\拆分出的表格\"
If Dir(dir_name, vbDirectory) = "" Then
MkDir (dir_name)
End If
'建立新工作簿
Dim workbook_path
workbook_path = ThisWorkbook.Path & "\拆分出的表格\" & sheet_map(0, i) & ".xls"
ActiveWorkbook.SaveAs Filename:=workbook_path, FileFormat:=-4143
ActiveSheet.Name = sheet_map(0, i)
'啟用當前工作簿,ThisWorkbook表示當前跑程式碼的工作簿
ThisWorkbook.Activate
'拷貝條目資料(即最前面不需要拆分的資料行)
Dim row_range
row_range = 1 & ":" & (start_row - 1)
Worksheets(sheet_name).Rows(row_range).Copy
Workbooks(sheet_map(0, i) & ".xls").Sheets(1).Range("A1").PasteSpecial
'拷貝拆分表的專屬資料
row_range = row_index & ":" & (row_index + sheet_map(1, i) - 1)
Worksheets(sheet_name).Rows(row_range).Copy
Workbooks(sheet_map(0, i) & ".xls").Sheets(1).Range("A" & start_row).PasteSpecial
row_index = row_index + sheet_map(1, i)
'儲存檔案
Workbooks(sheet_map(0, i) & ".xls").Close SaveChanges:=True
Next
'進行螢幕更新
Application.ScreenUpdating = True
MsgBox "拆分工作表完成"
End Sub
遇到的小問題
巨集被禁用
相關推薦
把excel中的資料,按條件分割成多個檔案
要求 有個excel檔案,把檔案中的資料按照某列,將相同的資料存為一個excel檔案。 VBA程式碼 執行下面的程式碼後,會在該excel的同級目錄下建立一個新資料夾“拆分出的表格”,拆分後生成的新檔案會存在這個目錄下。 我拆分了30個檔案,大約一分
用html如何把頁面分割成多個檔案,由多個檔案拼接而成?
摘要: 不同平臺:pc端靜態html分割頁面,達到類似php等動態頁面的include引入頁面效果;手機端單一HTML5頁面建立多個頁面。 用html把首頁分成三個檔案 在PHP、JSP等動態頁面開發中,頁面裡引入其它頁面只需include()進來就可以實現頁面的分離。
將PDF檔案分割成多個檔案
下載的PDF格式的檔案有時出於閱讀和管理的需要,經常需要分割成多個獨立的檔案,如果利用專業實用的PDF拆分軟體來分割,則可以達到事半功倍的效果。 一般大家都會迅捷pdf分割軟體這個經典的PDF編輯工具,這個確實很強大,但是大部分使用都是比較初級的功能,最近在網上苦苦尋
java獲取excel中資料,並轉化為JSON格式
java通過poi讀取execl檔案,並且將其中的map格式和陣列格式的字串,轉化為相應的資料型別。 引入poi庫 讀取execl資料,轉化為json字串 將其中的map格式和陣列格式的字串,轉化為相應的資料型別 引入poi庫: <depen
編寫一個檔案分割工具,能把一個大檔案分割成多個小的檔案。並且能再次把它們合併起來得到完整的檔案。
package wenjianyuliu;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io
編寫一個檔案分割工具,能把一個大檔案分割成多個小的檔案。並且能再次把他們合併起來得到完整的檔案
package wenjian; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java
excel將一個工作表根據條件拆分成多個sheet工作表
本例介紹在excel中如何將一個工作表根據條件拆分成多個工作表。 注意:很多朋友反映sheets(i).delete這句程式碼出錯,要注意下面第一個步驟,要拆分的資料工作表名稱為“資料來源”, 而不是你新建工作簿時的sheet1這種。手動改成“資料來源”即可。或者是把程式碼中得"資料來源
linux中如何將大檔案按照指定行數分割成多個小檔案?
將一個大檔案分成若干個小檔案方法例如將一個BLM.txt檔案分成字首為 BLM_ 的1000個小檔案,字尾為係數形式,且字尾為4位數字形式先利用wc -l BLM.txt 讀出 BLM.txt 檔案一共有多少行再利用 split 命令split -l 2482 .
PDF編輯器哪個好,如何把PDF檔案拆分成多個檔案
PDF檔案現在在我們的日常工作和生活中出現的頻率越來越高了,有時候會遇到別人給的資料是PDF格式的文件,裡面的內容比較多,而我們只需要其中一部分內容的時候,那要怎麼辦呢,就需要把這個PDF文件拆分成多個檔案,或者按照頁面拆分,或者只需要拆分其中一兩頁,今天就讓我來跟大家分享一下我是怎樣拆分PDF檔案的
MFC將edit編輯框內的多行字串,根據“\n”換行符分割成多個單行字串
程式碼功能:獲取到edit編輯框內的多行內容,並將其分割成多個單行字串 作者:weekdawn //獲取編輯框內容 UpdateData(TRUE); CString strEditStr;//編
如何實現將資料同時儲存到兩個資料表,使得同一次提交多個檔案的檔案ID號相同
情景說明: 假設我是一個檔案報告提交者,我想一次性提交需要交納的文件資訊。因此我的做法是,將一個個文字資訊通過TextBox控制元件新增顯示在GridView中,然後再將其儲存在對應的資料庫中。但是,我必須保證我這一次提交的資料,我作為提交者在第一個資料表中,僅有一條記錄,
HREE.JS 根據起始幀將一個AnimationClip物件分割成多個AnimationClip
THREE.JS 根據起始幀將一個AnimationClip物件分割成多個AnimationClip 因為從3dsMax裡面匯出的模型只支援一個動畫,如果需要對多個動畫進行單獨控制的話就必須將其切割成多個AnimationClip物件,其實原理跟陣列擷取是一樣的。
將excel按照某一列拆分成多個檔案
1.開啟目標excel,按alt + f11鍵開啟VBE視窗 2.選擇插入->模組貼上下面程式碼到編輯器中 Sub 保留表頭拆分資料為若干新工作簿() Dim arr, d As Object, k, t, i&, lc%, rng As Ran
怎麽編輯PDF,PDF如何拆分成多個PDF
mage 菜單欄 如何 但是 ado image water 點擊 多個 越來越多的小夥伴告訴小編在工作中遇到PDF文件,但是對於PDF文件不知道該如何修改,像是在PDF文件中想要拆分PDF文件的頁面,但是又不知道該怎麽去修改,不知道的話,快來看看下面的文章吧,沒準就會了哦
spark讀取多個資料夾(巢狀)下的多個檔案
在正常呼叫過程中,難免需要對多個資料夾下的多個檔案進行讀取,然而之前只是明確了Spark具備讀取多個檔案的能力。 針對多個資料夾下的多個檔案,以前的做法是先進行資料夾的遍歷,然後再進行各個資料夾目錄的讀取。 今天在做測試的時候,居然發現spark原生就支援這樣的能力。
將一個檔案分割為多個檔案
實現效果: 知識運用: FileStream BinaryReader類 //用特定的編碼將基元資料型別讀作二進位制值 其建構函式主要使用UTF8Encoding初始化類例項 public BinaryReader(Stream input) B
使用POI操作office2007及以上word模板替換變數,變數被分隔成多個XWPFRuns導致替換不了的處理方案
我的方案可能不是最好的,卻是我經過嘗試覺得可用的方案,分享給大家。程式碼比較拙劣,希望大家指正。剛好在
如何將 .NetFramework WebApi 按業務拆分成多個模組
在 .NetFramework 中使用 WebApi ,在不討論 微服務 的模式下,大部分都是以層來拆分庫的 : 基礎設施 資料儲存層 服務層 WeApi 層 一些其它的功能庫 專案結構可能會像下面這樣子 有些人可能會將
excel中將一張表中資料拆分成多個工作表,按部門不相同的拆分成單個工作表,且單個工作表名及為部門
在工作表名稱上點右鍵選檢視程式碼,貼上以下程式碼到彈出視窗.關閉彈出視窗 ALT+F8選中該巨集執行Sub 拆分工作表()Application.ScreenUpdating = FalseDim rng As Range, arr()endrow = Range("A65
如何把excel中的資料匯入到oracle資料已有的表中
操作步驟如下: 準備資料:在excel中構造出需要的資料 2.將excel中的資料另存為文字檔案(有製表符分隔的) 3.將新儲存到文字檔案中的資料匯入到pl*sql中 &nb