在 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+)。
希望这会有所帮助。
提前致谢。
谁能帮我用 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+)。
希望这会有所帮助。