0

ファイルを保存する前に、ワークシートの必須フィールドのテキストを確認したいと思います。セルB50:B53にテキストがある場合、対応するセルD50:D53は必須です。セルB50:B53が空の場合、列Dの対応するフィールドはオプションです。

このルールを1つの行に適用すると、次のコードで機能します。ただし、すべてのケース(B50とD50、B51とD51 ...)をテストしたいと思います。コードを4回コピーせずにこれを行うにはどうすればよいですか?

Dim MsgStr As String
Dim ws As Worksheet, r As Range, g As Range    

Set ws = wb.Sheets("Allotment hotel")
Set r = ws.Range("B50").Cells
Set g = ws.Range("D50").Cells

If r <> "" And g = "" Then
    MsgStr = "Room type was not found in the sheet 'Allotment hotel'"
End If
4

1 に答える 1

1
Sub check()

    Dim msg As String
    Dim rng As Range
    Set rng = Sheets("Allotment hotel").Range("B50:B53")

    For Each cell In rng
        If Not IsEmpty(cell) Then
            If IsEmpty(cell.Offset(0, 2)) Then
                msg = "Whatever String you want"
            End If
        End If
    Next cell

End Sub

または、セルB50:B53の名前付き範囲を作成し、それを呼び出しましょうcheckrng

Set rng = Sheets("Allotment hotel").Range("checkrng")
于 2012-07-10T12:37:28.087 に答える