① excel怎麼根據內容拆成多個表格
本例介紹在excel中如何將一個工作表根據條件拆分成多個工作表。
注意:很多朋友反映sheets(i).delete這句代碼出錯,要注意下面第一個步驟,要拆分的數據工作表名稱為「數據源」,而不是你新建工作簿時的sheet1這種。手動改成「數據源」即可。
開啟分步閱讀模式
工具材料:
Excel
操作步驟:
01
原始數據表如下(名稱為:數據源),需要根據B列人員姓名拆分成每個人一個工作表。
02
點擊【開發工具】-【Visual Basic】或者Alt+F11的快捷鍵進入VBE編輯界面。
03
如下圖所示插入一個新的模塊。
04
如下圖,粘貼下列代碼在模塊中:
Sub CFGZB()
Dim myRange As Variant
Dim myArray
Dim titleRange As Range
Dim title As String
Dim columnNum As Integer
myRange = Application.InputBox(prompt:="請選擇標題行:", Type:=8)
myArray = WorksheetFunction.Transpose(myRange)
Set titleRange = Application.InputBox(prompt:="請選擇拆分的表頭,必須是第一行,且為一個單元格,如:「姓名」", Type:=8)
title = titleRange.Value
columnNum = titleRange.Column
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim i&, Myr&, Arr, num&
Dim d, k
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name <> "數據源" Then
Sheets(i).Delete
End If
Next i
Set d = CreateObject("Scripting.Dictionary")
Myr = Worksheets("數據源").UsedRange.Rows.Count
Arr = Worksheets("數據源").Range(Cells(2, columnNum), Cells(Myr, columnNum))
For i = 1 To UBound(Arr)
d(Arr(i, 1)) = ""
Next
k = d.keys
For i = 0 To UBound(k)
Set conn = CreateObject("adodb.connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select * from [數據源$] where " & title & " = '" & k(i) & "'"
Worksheets.Add after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = k(i)
For num = 1 To UBound(myArray)
.Cells(1, num) = myArray(num, 1)
Next num
.Range("A2").CopyFromRecordset conn.Execute(Sql)
End With
Sheets(1).Select
Sheets(1).Cells.Select
Selection.Copy
Worksheets(Sheets.Count).Activate
ActiveSheet.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Next i
conn.Close
Set conn = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
05
如下圖所示,插入一個控制項按鈕,並指定宏到剛才插入的模塊代碼。
06
點擊插入的按鈕控制項,根據提示選擇標題行和要拆分的列欄位,本例選擇「姓名」欄位拆分,當然也可以選擇C列的「名稱」進行拆分,看實際需求。
07
代碼運行完畢後在工作簿後面會出現很多工作表,每個工作表都是單獨一個人的數據。具體如下圖所示:
08
注意:
1)原始數據表要從第一行開始有數據,並且不能有合並單元格;
2)打開工作簿時需要開啟宏,否則將無法運行代碼。
② 怎樣在Excel中,將幾百組數據做成一張張表格
可以利用VBA實現在Excel中將幾百組數據做成一張張表格。
軟體版本:Office2007
方法如下:
1.將AB兩列中的數據,每一行放到一個工作表中:
③ excel中 如何將大量的數據,自動均等的分成幾個獨立表格!比如1到100 一張表 100-200一張表
肯定是為了任務分解用了。
要分表不難,可以使用宏來實現。
占個坑,一會把代碼發上來。
按ALT+F11,雙擊左側這個文件名,雙擊當前工作表名,然後在右側粘貼以下代碼。然後到工作表界面運行aa宏
Sub aa()
Dim newbook As Workbook
a = ThisWorkbook.Name
b = ActiveSheet.Name
h = InputBox("請輸入行數")
Application.ScreenUpdating = False
For n = 0 To Range("a65536").End(xlUp).Row \ h
Windows(a).Activate
Sheets(b).Activate
Rows((h * n + 1) & ":" & (h * n + h)).Copy
Set newbook = Workbooks.Add
With newbook
newbook.Activate
ActiveSheet.Paste
.SaveAs Filename:=ThisWorkbook.Path & "\" & Replace(a, ".xls", "") & n & ".xls"
.Close
End With
Next n
Application.ScreenUpdating = True
End Sub
運行時會提示你輸入行數,比如100,確定後就會自動拆成100行一個表,並加上序號保存為新文件。
有疑問可以追問。
④ excel中如何根據數據及模版批量生成多個工作簿
舉個例子:選中Sheet1,按住Shift鍵,點Sheet3,右鍵插入,就可以一次性插入你選中的三個工作表,你一次性選中幾個表來插入就可以一次性插入幾個表或者不用右鍵插入直接拖也可以,像樓上說的,但要注意步驟比增加一個的要復雜一點:選中Sheet1,按住Shift鍵,點Sheet3,放開Shift鍵,再次點擊Sheet1,按住Ctrl鍵向右拖即可。