使用五个优秀的Excel宏整理数据,非常出色。

Excel宏可能不如其他自动化工具那么全面,然而它们并不会削弱Excel VBA的有效性和实用性。如果您使用Excel和其他Microsoft Office工具(例如Word和Access),那您将会对VBA及其功能感到满意。

MS Excel 是一个功能强大的工具,为用户提供了许多选项。从存储数据到创建自动化仪表板,您都可以在 Excel 及其电子表格中完成这一切。
MS Excel是一个功能强大的工具,为用户提供了许多选项。从存储数据到创建自动化仪表板,您都可以在Excel及其电子表格中完成这一切。

如果您想要在Excel中使用VBA自动执行排序任务,请尝试下列易于应用且有效的宏。

备忘录:

对于初学者来说,您可以下载示例数据集来练习 Excel 宏技能。一旦您熟悉了这些宏和一切的工作原理,您就可以修改代码以适应自己的电子表格。

在此处下载本文中使用的示例数据集。

https://go.skimresources.com/?id=85009X1675668&isjs=1&jv=15.2.1-stackpath&sref=https%3A%2F%2Fwww.makeuseof.com%2Fexcel-macros-for-sorting-data%2F&url=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkID%3D521962&xs=1&xtz=-420&xuuid=dbea3bd8a7fea598ef62218623c00da5&xjsf=other_click__auxclick%20%5B2%5D

1. 使用 Excel 宏对列进行排序

使用这段简单代码对 Excel 电子表格中的数据列进行排序。如果你已经下载了示例数据集,你可以尝试对E列(已售出数量)进行排序。

打开新的 Excel 文件并将其保存为 Excel 启用宏的工作簿 (.xlsm) 格式。该文件将存储宏以对其他文件中的数据进行排序。

打开新的Excel文件并将其保存为Excel启用宏的工作簿(.xlsm)格式。这个文件将用于存储宏,以便对其他文件中的数据进行排序。

您将从宏文件控制您的文件,该文件将与您的工作簿单独交互。

输入以下代码:

Sub sortwithheaders()
Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1:P701").sort Key1:=Range("e1"), Order1:=xlAscending, Header:=xlYes
End Sub

在那里:

  • 关键1: 确定要排序的列
  • 订单1: 排序方式(升序/降序)
  • 标题: 如果您的内容有标题,则此选项仍为 xlYeHeaders。 如果没有,请选择 xl号
在 Excel 中保存宏文件
在 Excel 中保存宏文件

该范围将包括起始和结束单元格地址,以便记录所有内容以用于排序目的。因此,您的整个数据集将根据E列中的数据进行排序。
该范围将包括起始和结束单元格地址,以便记录所有内容以用于排序目的。所以,您的整个数据集将根据E列中的数据进行排序。

2.在一列中动态排列数据

在某些情况下,起点是已定义的,但终点是动态的。在这种情况下,您可以使代码动态化,以便它自动接收范围内的端点。
在某些情况下,起点是已定义的,但终点是动态的。在这种情况下,您可以使代码动态化,以便它自动接收范围内的端点。

要响应数据更改,请使用以下代码:

Sub sortwithheaders()
Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1", Range("A1").End(xlDown)).sort Key1:=Range("e2"), Order1:=xlAscending, Header:=xlYes
End Sub

在那里:

  • 结束 (xl向下):该功能会自动选择最后填充的单元格

笔记:如果公式在列中遇到空单元格,那么公式会将前一个单元格视为范围的末尾。

3. 将多个列排列在一起

在某些情况下,您可能希望同时对多列中的数据进行排序。为此,您可以使用以下代码:

Sub SortMultipleColumns()
With Worksheets("Sheet1")
 With .Cells(1, "A").CurrentRegion
 .Cells.sort Key1:=.Range("B1"), Order1:=xlAscending, _
 Key2:=.Range("E1"), Order2:=xlAscending, _
 Orientation:=xlTopToBottom, Header:=xlYes
 End With
 End With
End Sub
将多个列排序在一起
将多个列排序在一起

4. 在多个工作表中排列列

在处理多个工作表时,您可能希望将数据放入仪表板中。数据准备最重要的方面之一是以某种格式排列数据以呈现给利益相关者或客户。

一种选择是手动循环浏览每个工作表,排列必要的列,然后继续下一步。但为什么不让 VBA 为您做呢?
一个选择是手动循环浏览每个工作表,排列必要的列,然后继续下一步。但为什么不让 VBA 为您做呢?

下面代码的目的是遍历工作簿中的每个可用工作表,并根据指定的列对可用数据进行排序。

以下是在多个工作表中排列列的方法:

Sub SortWS()
Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements. In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
End Sub

所有以引号开头的信息都是 VBA 注释。它们在执行阶段不会被运行。然而,通过添加每个 VBA 注释,您能够对代码进行有意义的补充,以便能够识别代码部分的性质、功能以及其他相关内容。

在 Excel VBA 中对多个工作表中的列进行排序的代码
在 Excel VBA 中对多个工作表中的列进行排序的代码

5. 将排序后的数据从一个工作表复制到另一个工作表

想象一下这种情况:您想要对数据进行排序并将整个数据集(或部分数据集)复制到新添加的工作表中。在这种情况下,您可以使用以下代码来执行此任务:

Sub SortWS()
Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements. 
'In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
'Create a new worksheet within the workbook to store the new data
ActiveWorkbook.Sheets.Add.Name = "Results"
'Copy paste the sorted data into the newly added sheet
Sheets("Sheet1").Range("A1:p701").Copy Destination:=Sheets("Results").Range("a1")
End Sub
将排序后的数据从一个工作表复制到另一个工作表
将排序后的数据从一个工作表复制到另一个工作表

上面的代码将对E列中的值进行排序,添加一个新的工作表 “结果” 到现有工作簿并将排序结果粘贴到单元格 A1 中。

上述代码将对列E中的值进行排序,将一个名为”结果”的新工作表添加到现有工作簿中,并将排序结果粘贴到单元格A1中。

Excel VBA是一种方便的语言,可以节省您大量的时间和精力。通过使用VBA宏,您可以创建广泛的仪表板,只需点击几下即可轻松组织数据,并轻松执行各种功能。

希望你成功。

Related Posts

如何在安卓手机上将照片数据导入到微软 Excel 工作表中?

MS Excel Android 应用程序允许您在智能…

如何通过命令提示符打开 Microsoft Excel?

通常情况下,要在Windows 10上打开程序,大多数…

Excel中如何制作帕累托图?

在Excel中,帕累托图常常与其他Excel图表类型一…

怎样在 Excel 中自定义单元格的边框?

除了在Excel中创建表格边框之外,您还可以在Exce…

如何在 Excel 分享单元格格式样式

在Excel中,有很多不同的单元格格式样式,因此如果需…

怎样在Microsoft Excel里使用自动换行?

Excel中的文本换行是Excel中提供的一项功能,可…

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注