如何用VBA 筛选数据并生成新的excel表

如何用VBA 筛选数据并生成新的excel表,第1张

假设数据在A到M列,从第2行开始(表头为第2行),代码如下:

Sub

test()

ActiveSheetRange("A2:M999")AutoFilter

Field:=2,

Criteria1:="投资"

Range("A2:M999")Copy

SheetsAdd

After:=Sheets(SheetsCount)

Range("A2")Select

ActiveSheetPaste

End

Sub

您可以使用VBA编写宏来实现自动筛选和自动生成多个工作表的功能。以下是一个基本的VBA示例,可将选定列中每个唯一值作为标签自动创建新工作表,并将相关数据复制到该工作表中:

Sub CreateNewSheets()

Dim ws As Worksheet

Dim newSheet As Worksheet

Dim lastRow As Long

Dim colIndex As Integer

Dim dict As Object

Set dict = CreateObject("ScriptingDictionary")

Set ws = ActiveSheet

lastRow = wsCells(RowsCount, "A")End(xlUp)Row '根据需要更改列号

colIndex = 1 '根据需要更改列号

For i = 2 To lastRow

dict(wsCells(i, colIndex)Value) = 1

Next i

For Each key In dictkeys

Set newSheet = WorksheetsAdd(After:=Worksheets(WorksheetsCount))

newSheetName = key

wsRange("A1")AutoFilter Field:=colIndex, Criteria1:=key

wsRange("A1")CurrentRegionCopy Destination:=newSheetRange("A1")

wsAutoFilterMode = False

Next key

End Sub

您可以将此代码复制并粘贴到Visual Basic Editor中,并在需要的工作表上运行该宏。请注意,您需要根据需要更改代码中的列号。

此宏假设您要按列A中的唯一值筛选数据,并使用唯一值作为新工作表的名称。如果您需要更改筛选的列或新工作表名称的生成方式,请相应地修改代码。

另外,请注意,此宏将自动在新工作表中创建筛选后的数据的副本,并不会将数据移动或删除原始工作表中。如果您需要将数据移动到新工作表中并删除原始数据,请修改代码以执行此 *** 作。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/12188691.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存