如何在 Excel 中重新排列不同列中多个单元格中的值

如何在 Excel 中重新排列不同列中多个单元格中的值

我有一个问题列表,每个问题有 4 个答案选项,一个挨着一个地放在 4 列中,正确的答案选项以“!”结尾,它会将单元格变成绿色,正如您在图片中看到的那样,我想以一种在第一列显示答案选项单元格的方式重新排列它。如果你知道怎么做,请帮帮我!谢谢! 这是我正在尝试编辑的电子表格的示例样本截图

答案1

您所需要的只是对每一行进行以下排序组合,

  1. 按行排序(从左到右排序)
  2. 按单元格颜色排序

我准备了一个可能有帮助的 VBA 解决方案。

笔记

  1. 该解决方案考虑到正确答案的绿色背景颜色格式已应用于数据集。
  2. 您可以根据需要更改下面代码中的 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

快照

  1. 从左到右排序的范围选择输入框

range_selection_inputBox

  1. 您可以找到如下图所示的 RGB 颜色代码,

rgb_颜色代码

  1. 结果

result_sorted_eachRow_LtoR

希望这可以帮助。

相关内容