操作步驟:原始數(shù)據(jù)表如下(名稱為:數(shù)據(jù)源),需要根據(jù)B列人員姓名拆分成每個人一個工作表。點擊【開發(fā)工具】-【Visual Basic】或者Alt+F11的快捷鍵進入VBE編輯界面。如下圖所示插入一個新的模塊e799bee5baa6e59b9ee7ad9431333365653266。如下圖,粘貼下列代碼在模塊中:Sub CFGZB()Dim myRange As VariantDim myArrayDim titleRange As RangeDim title As StringDim columnNum As IntegermyRange = Application.InputBox(prompt:="請選擇標(biāo)題行:", Type:=8)myArray = WorksheetFunction.Transpose(myRange)Set titleRange = Application.InputBox(prompt:="請選擇拆分的表頭,必須是第一行,且為一個單元格,如:“姓名”", Type:=8)title = titleRange.ValuecolumnNum = titleRange.ColumnApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDim i&, Myr&, Arr, num&Dim d, kFor i = Sheets.Count To 1 Step -1If Sheets(i).Name <> "數(shù)據(jù)源" ThenSheets(i).DeleteEnd IfNext iSet d = CreateObject("Scripting.Dictionary")Myr = Worksheets("數(shù)據(jù)源").UsedRange.Rows.CountArr = Worksheets("數(shù)據(jù)源").Range(Cells(2, columnNum), Cells(Myr, columnNum))For i = 1 To UBound(Arr)d(Arr(i, 1)) = ""Nextk = d.keysFor 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.FullNameSql = "select * from [數(shù)據(jù)源$] 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 WithSheets(1).SelectSheets(1).Cells.SelectSelection.CopyWorksheets(Sheets.Count).ActivateActiveSheet.Cells.SelectSelection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _SkipBlanks:=False, Transpose:=FalseApplication.CutCopyMode = FalseNext iconn.CloseSet conn = NothingApplication.DisplayAlerts = TrueApplication.ScreenUpdating = TrueEnd Sub如下圖所示,插入一個控件按鈕,并指定宏到剛才插入的模塊代碼。點擊插入的按鈕控件,根據(jù)提示選擇標(biāo)題行和要拆分的列字段,本例選擇“姓名”字段拆分,當(dāng)然也可以選擇C列的“名稱”進行拆分,看實際需求。代碼運行完畢后在工作簿后面會出現(xiàn)很多工作表,每個工作表都是單獨一個人的數(shù)據(jù)。具體如下圖所示:注意:1)原始數(shù)據(jù)表要從第一行開始有數(shù)據(jù),并且不能有合并單元格;2)打開工作簿時需要開啟宏,否則將無法運行代碼m.gy2thfx.cn防采集。
在excel中,經(jīng)常會用到將一個工作表根據(jù)條件拆分成多個工作表,那你是否知道如何操作呢?下面就來分享一下其操作步驟。
材料/工具
excel,電腦
你這個可以用查詢的方法。在同一個工作簿上建立多個以地區(qū)為名的表。假設(shè)原表名為“明細”,新建了一個名為
方法
首先,打開要操作的excel表,如圖所示。
For i = 0 To UBound(k) - 1這行改成for i=Lbound(k)
然后,點擊界面上方的“開發(fā)工具”,再點擊下方的“VB編輯器”,如圖所示。
一個Excel工作簿中的多個工作表想拆分成獨立表格,首先打開表格找到并選中表格右下角的表一,然后,點
然后,點擊界面上方的“插入”選項卡,再在彈出的框中點擊“模塊”,如圖所示。
Excel是職場辦公人員很常見的一種數(shù)據(jù)處理工具。excel應(yīng)用廣泛。Excel表格制作、Excel
然后,復(fù)制粘貼下列代碼在模塊中,如圖所示。
操作步驟:原始數(shù)據(jù)表如下(名稱為:數(shù)據(jù)源),需要根據(jù)B列人員姓名拆分成每個人一個工作表。點
Sub CFGZB()
以WPS 2019版本為例:關(guān)于一個EXCEL如何將一個工作表根據(jù)條件拆分成多件工作表,您可使用W
Dim myRange As Variant
excel將一個工作表根據(jù)條件拆分成多個工作表方法詳見:https://jingyan.baidu.
Dim myArray
以WPS 2019版本為例:關(guān)于EXCEL如何將1個工作表按條件分割成多個工作表,您可使用WPS參
Dim titleRange As Range
以WPS 2019版本為例:關(guān)于Excel把一個工作表拆分成多個工作表,您可使用WPS參考下述步驟
Dim title As String
你這個可以用查詢的方法。在同一個工作簿上建立多個以地區(qū)為名的表。假設(shè)原表名為“明細”,新建了一個名為
Dim columnNum As Integer
For i = 0 To UBound(k) - 1這行改成for i=Lbound(k)
myRange = Application.InputBox(prompt:="請選擇標(biāo)題行:", Type:=8)
一個Excel工作簿中的多個工作表想拆分成獨立表格,首先打開表格找到并選中表格右下角的表一,然后,點
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) & "'"
Dim Nowbook As Workbook
Set Nowbook = Workbooks.Add
With Nowbook
With .Sheets(1)
.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
End With
ThisWorkbook.Activate
Sheets(1).Cells.Select
Selection.Copy
Workbooks(Nowbook.Name).Activate
ActiveSheet.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Nowbook.SaveAs ThisWorkbook.Path & "" & k(i)
Nowbook.Close True
Set Nowbook = Nothing
Next i
conn.Close
Set conn = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
然后,按組合鍵“CTRAL+F”,點擊替換,查找內(nèi)容為“成績單”,替換為文件sheet表的命名。
然后,點擊界面上方的“運行”,再點擊“運行子過程/用戶窗體”。
然后,在彈出的窗口里選擇,條件所在位置,再點擊“確定”,如圖所示。
然后,在彈出的對話框中,點選篩選條件,如圖所示,再點擊“確定”,如圖所示。
這樣,就將一個工作表根據(jù)條件拆分成多個工作表了。
以WPS 2019版本copy為例:關(guān)于一個EXCEL如何將一個工作表根據(jù)條件拆分成多件工作表,百您可使用WPS參考下述步驟完成操作:1、打開「表格度(Excel)」文檔;2、點擊「數(shù)據(jù)-拆分表格」;3、按需選擇「把工作表按知照內(nèi)容拆分」或「把工作簿按照工作表拆分」使用即道可,生成表格是簡單的,問題是你的日期,必須要是規(guī)zhidao范的日期格式(你可在空白單元格輸入公式:=TODAY(),顯示的就是規(guī)范的日期格式版),否則真難操作??!操作上只要用一個數(shù)組公式即可,但是數(shù)據(jù)量大權(quán)的話運算和計算反應(yīng)會比較慢的更多追問追答追問那請問是什么公式呢??追答新建一個工作表,在第一行輸入相應(yīng)的表格頭,然后在A2單元格輸入數(shù)組公式:=IFERROR(INDEX('18年銷售記錄總表'!A2:A42,SMALL(IF(MONTH('18年銷售記錄總表'!$A$2:$A$42)=1,ROW($2:$42),4^8),ROW(A1)))&"","")復(fù)制并下拉,再向右拉,即可得到1月份的數(shù)據(jù)表,把上面公式中的等于1改成等于2即為2月份的表此公式為數(shù)組公式,粘貼或者輸入完畢必須是CTRL+SHIFT+ENTER這3鍵同時按結(jié)束,否則公式無效?。?!同時,公式里的數(shù)字42要改為總表中最后一行數(shù)據(jù)所在行的行號,此處總表以第2行開始有數(shù)據(jù)。新生成表格中的日期列必須要設(shè)置成日期格式,否則顯示僅為數(shù)值……追問不知道什么原因改了日期格式還是顯示的數(shù)字呢追答把日期這一列的公式改成為:=IFERROR(INDEX('18年銷售記錄總表'!A2:A42,SMALL(IF(MONTH('18年銷售記錄總表'!$A$2:$A$42)=1,ROW($2:$42),4^8),ROW(A1))),"")追問好像還是有問題,出來的數(shù)據(jù)比原始數(shù)據(jù)少了的追答1、那個ROW改成:ROW($1:$9858)2、第一個要改成A$2:A$9859,因為沒有絕對定位,本回答被提問者和網(wǎng)友采納,excel將一個工百作表根度據(jù)條件拆知分成多道個工作內(nèi)表方法詳見:容https://jingyan.baidu.com/article/c45ad29cd48857051753e285.html,這個別人要理解得先知道你拆分的條件是什么,vba代碼?內(nèi)容來自m.gy2thfx.cn請勿采集。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com