セルA2〜A999でデータ検証が行われているドロップダウンメニューの唯一のオプションが "Today"(引用符は含みません)のスプレッドシートがあります。私は今日の日付にセルの値を変更するVBAコードを持っています "今日"がセルで選択されています。しかし、このコードには問題があります。今日の日付が入っているセルを含むセルのグループの内容をクリアすると、スプレッドシートは考えてからデバッグして閉じます。例えばA1 & B1を同時にクリアする。 しかし、私はそれ自身でA1をクリアすると、問題なくセルをクリアします。VBAコード今日のデータ検証
P.S. 「明確にする」とは、「マウスで細胞のグループを選択し、バックスペースボタンを押す」と言っていました。
データ検証付きのセルを含め、多くのセルを同時に消去できるようにコードを修正する手助けがありますか。
以下のように私は、ワークシートの部分に貼り付けられている使用しているのですコード:
Private Sub Worksheet_Change(ByVal Target As Range)
selectedVal = Target.Value
If Target.Column = 1 Then
selectedNum = Application.VLookup(selectedVal, Worksheets("DATA-
O").Range("DateToday"), 2, False)
If Not IsError(selectedNum) Then
Target.Value = selectedNum
End If
End If
End Sub
'Intersect'を使用して範囲内のすべてのセルを取得し、' For Each ... In ... 'ループ... ' Target.Value'はマルチセル変更の配列になります。また、 'VLookup'はその状況で何をすべきかわからないので、エラーを出します...もし' If Target.Cells.Count> 1 Then Exit Sub'が可能(簡単な方法として) –
@DirkReichelありがとうございますが、スプレッドシートのパフォーマンスを低下させる可能性のあるものは避けたいと思います。その理由のために – Omar
は 'Exit Sub'です。マルチセルチェンジがクリアされているだけで、チェックは必要ありません。シンプルな 'If Target.Cells.Count> 1 Then Then Exit Sub'はサブ...を終了します。 ... –