編集済み:

編集済み:

いくつかのコラムがありますが、その中でも重要なものは次のとおりです。タスク優先度状態

すべてのレコード行を優先度言う」高い」が自動的に更新され、他のレコードの上部に表示されます。

私の VB に関する知識は、VB エディターを開くことに限られています。助けてください。

編集

これは私がやろうとしていることのスクリーンショットです。私はすでに条件付き書式を設定して、すべての行を強調表示しています。優先度として表示されます高いここで、これらすべてのレコード (および追加されたときに優先度が「高」の新しいレコード) が他のレコードの上に自動的に表示されるようにする必要があります。

Excel スクリーンショット

答え1

  1. テーブルの自動フィルタリングを有効にします。

  2. ステータス列に条件付き書式を設定し、高い値を適切な背景色でマークします。

  3. 以下のコードをワークシート モジュールに挿入します。必要に応じて、コード内の列番号、ヘッダー セル アドレス、背景色の値を編集します。

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
        With AutoFilter.Sort
            .SortFields.Clear
            .SortFields.Add(Range("B1"), xlSortOnCellColor, xlAscending, , xlSortTextAsNumbers).SortOnValue.Color = RGB(242, 242, 242)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End If
    End Sub
    

これで、列 B を変更するたびにデータ テーブルの順序が変わります。

PS. 最終的な行の順序と変更された行の所有は予測できません... より詳細な並べ替え基準を設定することで、最終的な順序を絞り込むことができます。

PPS. もちろん、条件付き書式を使用せずに値で直接並べ替えることもできます。したがって、この投稿はソリューションではなくサンプルとして使用してください。

答え2

私はVBA(マクロ)のセットを提案したいと思います。これは行を並べ替えるのに役立ちます。高い昇順で並べ、その後背景色で塗りつぶします。

ソート前:

ここに画像の説明を入力してください


分類後:

ここに画像の説明を入力してください


  • どちらかを押すAlt+F11または右クリックシートタブVB エディターを開きます。
  • これらの VBA コードをコピーして標準モジュールとして貼り付けます。

     Sub SortDataWithoutHeader()
    
    Range("Test12A.xlsm!Newdata1").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes
     Call Highlight
    
     End Sub
    

    Sub Highlight()

     Dim LastRow As Long, c As Range
     Dim MyRange As Range
LastRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row
      Set MyRange = Range("C2:C" & LastRow)
      For Each c In MyRange
      If c.Value = "High" Then

       c.EntireRow.Interior.Color = vbGreen
       Else

       c.EntireRow.Interior.Color = xlNone
       End If

      Next

     End Sub

注意

  • この行ではRange("Test12A.xlsm!Newdata1")、、ニューデータ1それは名前付き範囲編集を避ける並べ替える範囲新しい行が入力されるたびに。
  • Interior.Color = vbGreenvbグリーン編集可能です。

編集済み:

このコードは、新しいエントリごとにデータセットを自動的に並べ替えて整理し、テキストがあるセルのみを強調表示します。高い。

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Not Intersect(Target, Range("C:C")) Is Nothing Then
Range("C1").Sort Key1:=Range("C2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

Call Highlight

Application.EnableEvents = False

 End If
End Sub

Sub Highlight()
Dim cell As Range

For Each cell In Range("C:C")

If cell.Value = "High" Then
cell.Interior.Color = XlRgbColor.rgbLightGreen
Else
cell.Interior.Color = xlNone

End If
Next cell

End Sub

必要に応じて、VBA コード内のセル参照を調整します。

答え3

Sortby() 関数を使ってみてください。とても簡単にできました。私のような人 (Excel 初心者) にとって、VBA コードは非常に困難でした。

関連情報