當前位置:生活全書館 >

IT科技

> excel將一個工作表根據條件拆分成多個工作表的操作方法

excel將一個工作表根據條件拆分成多個工作表的操作方法

操作步驟:原始資料表如下(名稱為:資料來源),需要根據B列人員姓名拆分成每個人一個工作表。點選【開發工具】-【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:="請選擇標題行:", 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 <> "資料來源" ThenSheets(i).DeleteEnd IfNext iSet d = CreateObject("Scripting.Dictionary")Myr = Worksheets("資料來源").UsedRange.Rows.CountArr = Worksheets("資料來源").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 [資料來源$] 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如下圖所示,插入一個控制元件按鈕,並指定巨集到剛才插入的模組程式碼。點選插入的按鈕控制元件,根據提示選擇標題行和要拆分的列欄位,本例選擇“姓名”欄位拆分,當然也可以選擇C列的“名稱”進行拆分,看實際需求。程式碼執行完畢後在工作簿後面會出現很多工作表,每個工作表都是單獨一個人的資料。具體如下圖所示:注意:1)原始資料表要從第一行開始有資料,並且不能有合併單元格;2)開啟工作簿時需要開啟巨集,否則將無法執行程式碼www.51dongshi.com防採集。

在excel中,經常會用到將一個工作表根據條件拆分成多個工作表,那你是否知道如何操作呢?下面就來分享一下其操作步驟。

材料/工具

excel,電腦

你這個可以用查詢的方法。在同一個工作簿上建立多個以地區為名的表。假設原表名為“明細”,新建了一個名為

方法

首先,開啟要操作的excel表,如圖所示。

For i = 0 To UBound(k) - 1這行改成for i=Lbound(k)

excel將一個工作表根據條件拆分成多個工作表的操作方法

然後,點選介面上方的“開發工具”,再點選下方的“VB編輯器”,如圖所示。

一個Excel工作簿中的多個工作表想拆分成獨立表格,首先開啟表格找到並選中表格右下角的表一,然後,點

excel將一個工作表根據條件拆分成多個工作表的操作方法 第2張

然後,點選介面上方的“插入”選項卡,再在彈出的框中點選“模組”,如圖所示。

Excel是職場辦公人員很常見的一種資料處理工具。excel應用廣泛。Excel表格製作、Excel

excel將一個工作表根據條件拆分成多個工作表的操作方法 第3張

然後,複製貼上下列程式碼在模組中,如圖所示。

操作步驟:原始資料表如下(名稱為:資料來源),需要根據B列人員姓名拆分成每個人一個工作表。點

Sub CFGZB()

以WPS 2019版本為例:關於一個EXCEL如何將一個工作表根據條件拆分成多件工作表,您可使用W

Dim myRange As Variant

excel將一個工作表根據條件拆分成多個工作表方法詳見:https://jingyan.baidu.

Dim myArray

以WPS 2019版本為例:關於EXCEL如何將1個工作表按條件分割成多個工作表,您可使用WPS參

Dim titleRange As Range

以WPS 2019版本為例:關於Excel把一個工作表拆分成多個工作表,您可使用WPS參考下述步驟

Dim title As String

你這個可以用查詢的方法。在同一個工作簿上建立多個以地區為名的表。假設原表名為“明細”,新建了一個名為

Dim columnNum As Integer

For i = 0 To UBound(k) - 1這行改成for i=Lbound(k)

myRange = Application.InputBox(prompt:="請選擇標題行:", 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

excel將一個工作表根據條件拆分成多個工作表的操作方法 第4張

然後,按組合鍵“CTRAL+F”,點選替換,查詢內容為“成績單”,替換為檔案sheet表的命名。

excel將一個工作表根據條件拆分成多個工作表的操作方法 第5張

然後,點選介面上方的“執行”,再點選“執行子過程/使用者窗體”。

excel將一個工作表根據條件拆分成多個工作表的操作方法 第6張

然後,在彈出的窗口裡選擇,條件所在位置,再點選“確定”,如圖所示。

excel將一個工作表根據條件拆分成多個工作表的操作方法 第7張

然後,在彈出的對話方塊中,點選篩選條件,如圖所示,再點選“確定”,如圖所示。

excel將一個工作表根據條件拆分成多個工作表的操作方法 第8張

這樣,就將一個工作表根據條件拆分成多個工作表了。

excel將一個工作表根據條件拆分成多個工作表的操作方法 第9張

以WPS 2019版本copy為例:關於一個EXCEL如何將一個工作表根據條件拆分成多件工作表,百您可使用WPS參考下述步驟完成操作:1、開啟「表格度(Excel)」文件;2、點選「資料-拆分表格」;3、按需選擇「把工作表按知照內容拆分」或「把工作簿按照工作表拆分」使用即道可,生成表格是簡單的,問題是你的日期,必須要是規zhidao範的日期格式(你可在空白單元格輸入公式:=TODAY(),顯示的就是規範的日期格式版),否則真難操作啊!操作上只要用一個數組公式即可,但是資料量大權的話運算和計算反應會比較慢的更多追問追答追問那請問是什麼公式呢??追答新建一個工作表,在第一行輸入相應的表格頭,然後在A2單元格輸入陣列公式:=IFERROR(INDEX('18年銷售記錄總表'!A2:A42,SMALL(IF(MONTH('18年銷售記錄總表'!$A$2:$A$42)=1,ROW($2:$42),4^8),ROW(A1)))&"","")複製並下拉,再向右拉,即可得到1月份的資料表,把上面公式中的等於1改成等於2即為2月份的表此公式為陣列公式,貼上或者輸入完畢必須是CTRL+SHIFT+ENTER這3鍵同時按結束,否則公式無效!!!同時,公式裡的數字42要改為總表中最後一行資料所在行的行號,此處總表以第2行開始有資料。新生成表格中的日期列必須要設定成日期格式,否則顯示僅為數值……追問不知道什麼原因改了日期格式還是顯示的數字呢追答把日期這一列的公式改成為:=IFERROR(INDEX('18年銷售記錄總表'!A2:A42,SMALL(IF(MONTH('18年銷售記錄總表'!$A$2:$A$42)=1,ROW($2:$42),4^8),ROW(A1))),"")追問好像還是有問題,出來的資料比原始資料少了的追答1、那個ROW改成:ROW($1:$9858)2、第一個要改成A$2:A$9859,因為沒有絕對定位,本回答被提問者和網友採納,excel將一個工百作表根度據條件拆知分成多道個工作內表方法詳見:容https://jingyan.baidu.com/article/c45ad29cd48857051753e285.html,這個別人要理解得先知道你拆分的條件是什麼,vba程式碼?內容來自www.51dongshi.com請勿採集。

標籤: 操作方法 excel
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/1pm4l2.html