在 Excel 2003 中使用 VBA 按单元格背景颜色对数据进行排序

Sort data by cell background color using VBA in Excel 2003

提前致谢。

谁能帮我用 Excel 2003 中的单元格背景颜色对数据进行排序。

我有 400 行,其中 30 行的单元格区域 A1 的背景颜色为黄色。我需要根据 VBA 中的颜色对数据进行排序,以减少我对数据进行的迭代次数(如果我可以对数据进行排序,排序后的数据将位于顶部,我只能解析 30 行而不是循环所有 400 行)。

从 Excel 2007 开始,您可以按以下步骤执行此任务:首先,select 工作表范围,然后单击 Sort->Advanced,然后在对话框 select“Sort On”选项“单元格颜色”,并根据您的任务对其进行自定义。您可以使用宏记录器生成基本的 VBA 代码(如果您希望我们对其进行优化,请将其包含在您的 post 中)。

与 Excel 2003 相关,可能的解决方案是使用代码模块中的辅助函数:

' in Excel 2003 it could be Public by default if placed in code Module
Public Function BackgroundColorIndex(myRange As Range)
    BackgroundColorIndex = myRange.Interior.ColorIndex
End Function

然后将此函数添加到某个辅助列并对该列中的值进行排序。此解决方案也适用于以后的 Excel 版本(2007+)。

希望这会有所帮助。