2011-10-28 7 views
0

私は列AからHまでのExcelファイルを作成していますが、必須のセルです。 このExcelファイルは入力用に渡されます。 したがって、私は空のセルを思い出させるために強調したいと思います。私はしかし、私はメッセージを表示し、A2からもH. に列A内のデータを含む最後の行の範囲を設定したいと思います...vba @ excel_highlight空のセル

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 

次のコードを書かれている

ボックスは、空のセルが存在する場合のみです。 私はどのように訂正すべきかアドバイスしていただけますか?

ミリオンありがとう!!!

+0

:Hは、その後どのようにあなたがそのCの最後の行であるか分からない空白にすることができますA:H内のデータを保持しますか?制限を設定するこの範囲外の別のデータセクションがありますか? – brettdj

答えて

0

これは、あなたが可能な第2の部分における所望の範囲が満たされるまで保存からユーザーを防止するVBA溶液(すなわち、最後の行は、少なくとも一つの細胞が入ったものであることGsergのコメントを認める)

あります特定のシート名の位置x、またはSet ws = Sheets("YourSheet")のために、直接

Set ws = Sheets(x)をあなたのシートのインデックスを追加するいずれかのコードは、(ショートカットとしてSpecialCellsを使用して)最後に入力したセルまで、このシートのHに内真に空白のセルをハイライト表示します。任意のそのような細胞ははThisWorkbookモジュールにこのコードを入れて終了時にコードによって

  1. を選択する(ユーザがファイルを閉じようとするたびにそれが発射)

    Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    bCheck = False 
    Call CheckCode 
    If bCheck Then Cancel = True 
    End Sub 
    
  2. にこのコードを入れてcolulmn Aのデータであれば、標準モジュール

    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 
    
関連する問題