2016-11-01 9 views
-1

これはVBマクロが必要ですね。私はこれを行う方法を知る必要があります。私は優れたシートを持っています。名前、年齢、性別、誕生日の4つの列で言うことができます。 AGE列が常にすべてのレコードに対して満たされ、常に正でゼロ以上であることを確認したいとします。ファイル内のレコード数は固定されていないので、ファイルは5行または500行を持つことができます。 NAME、GENDER、BIRTHDAYのいずれかの列が空白になっている場合は、0または負の値を入力してExcelがファイルを閉じないようにする必要があります。特定の列のセルが空で、それに隣接するセルがいっぱいになるとExcelが終了しないようにします

+0

既に試したコードを投稿する必要があります。また、このアプリケーションの動作を経験するユーザーにとっては非常に面倒です。私がファイルを閉じる正当な理由があったとしたら、今ではフォームに記入すると言っている不快なスプレッドシートがあります... –

+0

私はまだコードを試していません、私は実行可能なコードを探していますVBで非常に良い。また、ユーザーはレコード全体を削除してファイルを閉じることもできます。ユーザーは年齢を増やさずにレコードを保存すべきではありません。 Webフォームの必須フィールドと同じように必須フィールドが埋められるようにするための予防策です。 – Parry

+0

'Birthday'列が埋まっている場合は、確かに' Age'を推論することができます。 –

答えて

0

を閉じるとき、ニーズ

VBA Excelのアクションに合わせて、このソリューションを少しハックすることができます閉鎖部分。個々の条件は、ファイル内の正確な内容に基づいて追加する必要がありますが、MyValidationsを1に設定するために追加できます。上記のように、これはWorkbook_BeforeCloseイベントに基づいています。 https://msdn.microsoft.com/en-us/library/office/ff194765.aspx

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    If MyValidations = 1 Then 
     Cancel = False 
    Else 
     MsgBox "Nope'" 
     Cancel = True 
    End If 
End Sub 
関連する問題