我有一个问题列表,每个问题有 4 个答案选项,一个挨着一个地放在 4 列中,正确的答案选项以“!”结尾,它会将单元格变成绿色,正如您在图片中看到的那样,我想以一种在第一列显示答案选项单元格的方式重新排列它。如果你知道怎么做,请帮帮我!谢谢! 这是我正在尝试编辑的电子表格的示例
答案1
您所需要的只是对每一行进行以下排序组合,
- 按行排序(从左到右排序)
- 按单元格颜色排序
我准备了一个可能有帮助的 VBA 解决方案。
笔记
- 该解决方案考虑到正确答案的绿色背景颜色格式已应用于数据集。
- 您可以根据需要更改下面代码中的 RGB 颜色代码
VBA 代码
Sub sortLtoR_EachRow_ByCellColor()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim rng, rngSort, row_rngSort As Range
Dim rngFirstCol_rngSort As Range
Dim rowNumCurr_rngSort As Long
Dim colsCount_rngSort As Long
Set ws = ActiveSheet
Set rngSort = Application.InputBox(prompt:="Select your range", Title:="SELECTION", Default:=Selection.Address, Type:=8)
Set rngFirstCol_rngSort = rngSort.Resize(, 1)
colsCount_rngSort = rngSort.Columns.Count
For Each rng In rngFirstCol_rngSort.Cells
Set row_rngSort = rng.Resize(1, colsCount_rngSort)
With ws.Sort
.SortFields.Clear
.SortFields.Add(rng, xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(169, 208, 142) 'change RGB values as needed
.SetRange row_rngSort
.Orientation = xlSortRows
.Apply
End With
Next rng
Application.ScreenUpdating = True
End Sub
快照
- 从左到右排序的范围选择输入框
- 您可以找到如下图所示的 RGB 颜色代码,
- 结果
希望这可以帮助。