vba @ excel_highlight空のセル

私はAからHまでの列でExcelファイルを作成しています。必須のセルです。 このExcelファイルは入力用に渡されます。 だから、私は空の細胞を思い出させるために強調したいと思います。

私は次のコードを書いている...

Sub Highlight_Cell()
Dim Rng As Range

For Each Rng In Range("A2:H20") 
If Rng.Value = "" Then
Rng.Interior.ColorIndex = 6 ‘yellow
Else
Rng.Interior.ColorIndex = 0 'blank
End If
Next Rng
   MsgBox "Please fill in all mandatory fields highlighted in yellow."
End Sub

しかし、A2から列A内のデータを含む最終行までの範囲をHに設定したいとします。 また、空のセルが存在する場合にのみメッセージボックスを表示します。 どうすればいいですか?

百万こんにちは!!!

0
colulmn A:Hのデータが空白の場合、どのデータがA:H内のデータを含む最後の行であるかをどのように知ることができますか?制限を設定するこの範囲外の別のデータセクションがありますか?
追加された 著者 brettdj,

1 答え

これは、ユーザーが目的の範囲が満たされるまで保存できないようにするVBAソリューションです(最後の行が少なくとも1つのセルが入力されているというGsergのコメントを確認する)

2番目の部分では、シートインデックスを直接 Set ws = Sheets(x)の位置xに追加するか、 Set ws = Sheets( "YourSheet")特定のシート名

このコードは、最後に入力されたセル(ショートカットとしてSpecialCellを使用)まで、このシートのAからHまでの真に空白のセルのみを強調表示します。そのようなセルは、終了時にコードによって選択されます

  1. Put this code in the ThisWorkbook module (so it fires whenever the user tries to close the file)

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    bCheck = False
    Call CheckCode
    If bCheck Then Cancel = True
    End Sub
    
  2. Put this code in a standard module

    Public bCheck As Boolean
    Sub CheckCode()
    Dim ws As Worksheet
    Dim rng1 As Range
    Dim rng2 As Range
    bCheck = False
    'works on sheet 1, change as needed
    Set ws = Sheets(1)
    Set rng1 = ws.Columns("A:H").Find("*", ws.[a1], xlValues, xlWhole, xlByRows)
    If rng1 Is Nothing Then
        MsgBox "No Cells in columns A:H on " & ws.Name & " file will now close", vbCritical
        Exit Sub  
    End If
    Set rng2 = ws.Range(ws.[a1], ws.Cells(rng1.Row, "H"))
    On Error Resume Next
    Set rng2 = rng2.SpecialCells(xlBlanks)
    On Error GoTo 0
    If rng2 Is Nothing Then Exit Sub
    bCheck = True
    rng2.Interior.Color = vbYellow
    MsgBox "Please fill in all mandatory fields on " & ws.Name & " highlighted in yellow", vbCritical, "Save Cancelled!"
    Application.Goto rng2.Cells(1)
    End Sub
    
0
追加された