知識改變命運,科技成就未來。在使用Microsoft Excel統計數據時,一般情況下會將各類數據匯總到一個工作表中。當需要分類數據時,使用【篩選】功能的話重複性操作太多,還需要將篩選後的數據進行複製粘貼,有什麼辦法能夠按條件快速的將總表數據拆分成多個工作表?這個時候就需要用到強大的Visual Basic for Applications(VBA)了。
Microsoft Excel按條件快速將總表數據拆分成多個工作表詳細操作流程:
第一步:左鍵雙擊打開素材文件【將總表數據拆分成多個工作表.xlsx】Microsoft Excel工作表。要編輯VBA代碼,首先我們需要打開【Visual Basic編輯器】,右鍵單擊【總表】工作表,左鍵單擊右鍵菜單中的【查看代碼(V)】即可打開【Visual Basic編輯器】。
第二步:編輯VBA代碼。左鍵單擊【工程資源管理器】中的【Sheet1 總表】後,在右側代碼窗口中鍵入以下代碼,您也可以選擇複製粘貼。代碼輸入完成後,不需要保存,直接關閉【Visual Basic編輯器】即可。
Sub NewSheets()
Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x&
Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set d = CreateObject("scripting.dictionary")
Set Rg = Application.InputBox("請您框選拆分依據列!只能選擇單列單元格區域!", Title:="提示", Type:=8)
tCol = Rg.Column
tRow = Val(Application.InputBox("請您輸入總表標題行的行數?"))
If tRow = 0 Then MsgBox "您未輸入標題行行數,程序退出!": Exit Sub
Set Rng = ActiveSheet.UsedRange
arr = Rng
tCol = tCol - Rng.Column + 1
aCol = UBound(arr, 2)
For i = tRow + 1 To UBound(arr)
If Not d.exists(arr(i, tCol)) Then
d(arr(i, tCol)) = i
Else
d(arr(i, tCol)) = d(arr(i, tCol)) & "," & i
End If
Next
For Each sht In Worksheets
If d.exists(sht.Name) Then sht.Delete
Next
kr = d.keys
For i = 0 To UBound(kr)
If kr(i) <> "" Then
r = Split(d(kr(i)), ",")
ReDim brr(1 To UBound(r) + 1, 1 To aCol)
k = 0
For x = 0 To UBound(r)
k = k + 1
For j = 1 To aCol
brr(k, j) = arr(r(x), j)
Next
Next
With Worksheets.Add(, Sheets(Sheets.Count))
.Name = kr(i)
.[a1].Resize(tRow, aCol) = arr
.[a1].Offset(tRow, 0).Resize(k, aCol) = brr
Rng.Copy
.[a1].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.[a1].Select
End With
End If
Next
Sheets(1).Activate
Set d = Nothing
Erase arr: Erase brr
MsgBox "數據拆分完成!"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
第三步:按條件快速將總表數據拆分成多個工作表使用流程。首先我們需要在菜單欄中顯示【開發工具】。顯示【開發工具】詳細操作流程請參照:PPT小技巧:如何把視頻嵌入到PPT演示文稿中合併成一個文件?PPT和Excel操作流程基本一致。左鍵單擊菜單欄中的【開發工具】選項卡,左鍵單擊【代碼】功能區中的【宏】按鈕。
第四步:左鍵單擊選中【宏】對話框中的【Sheet1.NewSheets】後,左鍵單擊【執行(R)】按鈕。
第五步:素材中拆分工作表的條件是【班級】,左鍵單擊【A】列後,【提示】對話框中的文本框會自動生成單元格區域【$A:$A】,左鍵單擊【確定】按鈕即可進行下一步操作。備註:也可長按滑鼠左鍵圈選單元格區域,在圈選單元格區域時,無螞蟻線作為提示,圈選完成後請核對圈選區域是否正確。
第六步:在【輸入】對話框的文本框中,鍵入總表標題行的行數,素材中標題行的行數為【1】,所以鍵入的數字為【1】,鍵入完成後,左鍵單擊【確定】按鈕。拆分完成後會有【數據拆分完成!】的提示框,左鍵單擊【確定】按鈕即可完成總表的拆分。
第七步:按條件快速將總表數據拆分成多個工作表效果展示。
至此,Microsoft Excel按條件快速將總表數據拆分成多個工作表操作流程已全部結束。知識改變命運,科技成就未來。希望這個小知識能給您的工作和生活帶來更多的便捷。如有疑問或建議,請在下方留言。點擊關注,有更多科技知識等著您,謝謝您的支持。