根据单元格值排序工作表(Microsoft Excel)
_ExcelTips_的其他问题提供了一些方法,可以根据工作表名称对工作簿中的工作表进行排序。但是,如果要基于每个工作表的给定单元格中的值对工作表进行排序,该怎么办?例如,您可能有一系列共享相同总体布局的工作表,并且您希望基于每个工作表的单元格H7中的值对工作表进行排序。
处理此问题的唯一方法是使用宏。宏需要逐步浏览工作簿中的每个工作表,然后检查每个后续工作表中的关键单元格以查看如何进行比较。如果单元格值小于当前工作表,则可以移动包含较小值的工作表。
Sub SortWksByCell() Dim i As Integer Dim j As Integer For i = 1 To Worksheets.Count For j = i To Worksheets.Count If UCase(Worksheets(j).Range("H7")) < _ UCase(Worksheets(i).Range("H7")) Then Worksheets(j).Move Before:=Worksheets(i) End If Next Next End Sub
请注意使用Move方法,该方法可以进行工作表的实际移动。工作表的名称无关紧要,仅取决于每个工作表单元格H7中的值的位置。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2890)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: