ブックを保存する前に特定のシートが空の場合にプロンプトを表示する以下のコードがあります。特定の範囲内でセルが空白でないかどうかを確認するVBA
コードの目的:メインシートでドロップダウンの値が「はい」になっているかどうかをチェックし、「はい」の場合、特定のシートの所定の範囲が空白であるかどうかをチェックします。 「はい」の場合、プロンプトを表示し、メインシートのドロップダウン値を「いいえ」に変更します。
問題:コード内のFor loop
は、指定された範囲内のセルが空であるかどうかをチェックします。代わりに、指定された範囲内のいずれかのセルにエントリがあるかどうかを確認するコードを設定します。与えられた範囲がE10:G19
であると言うことができます.E10に項目がある場合は、コードから出てくるはずです。プロンプトを投げてはならず、指定された範囲内のすべてのセルが空の場合にだけ投げます。
質問:私の目的を果たすことができるFor loop
の代わりになるものは何ですか?ここで
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
Dim Rvalue As Range
Dim cell As Range
Set Rvalue = Sheets("Uni-corp").Range("E10:G19")
If Worksheets("Main").Range("E29").Value = "YES" Then
For Each cell In Rvalue
If IsEmpty(cell) Then
bOk = True
Exit For
Else: bOk = False
End If
Next
If bOk Then
If MsgBox("Sheet is blank", vbOKCancel + vbInformation) = vbOK Then
Worksheets("Main").Range("E29").Value = "NO"
Cancel = True
End If
End If
End If
End Sub
ありがとうございます。私はあなたのコードで自分の要求をどのように置き換えるのか、さらに混乱しています。私はVBAでそれほど良くありません:-( – sady
b_is_range_emptyは、範囲が空であるかどうかに応じて真偽を返します。別のモデルにコードを貼り付け、範囲を選択してTestMeを実行して動作を確認します。 – Vityata