前提・実現したいこと
現在、カレンダー兼タスクリストを作成しています。
画像の様に、日付ごとに2列に分けていて、偶数列にタスク番号、奇数列はプルダウンで空白と×が選べるようになっていて、作業を行う日時にタスク番号を入力、その作業が終了したらタスク番号の右側のプルダウンを選択して×をつけて終わり。という流れにしています。
実際に行いたいことなのですが、
タスク番号を入力しても作業ができなかった場合に別の日にまた同じタスク番号を入れることがあるのですが、
タスク番号の横に×がついている(つまりタスク終了している)にもかかわらず、間違えてまた同じタスク番号を入れてしまった場合にポップアップで「その作業は終了しています!」等の警告が出るようにしたいのです。
VBAを始めたばかりで、いろんなところで聞きながら見よう見まねで作成中なのですが肝心なところのコードが全くわからず…
お力添えいただけますと助かります。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
VBA
1 2Private Sub Worksheet_Change(ByVal Target As Range) 3 4 Dim c As Range 5 Dim wS As Worksheet 6 Dim rng As Range 7 If Intersect(Target, Range("B5:KU103")) Is Nothing Or Target.Count > 1 Then Exit Sub 8 With Target 9 If .Column Mod 2 = 1 Then 10 Set wS = Worksheets("Sheet2") 11 Set c = wS.Cells.Find(what:=.Offset(, -1), LookIn:=xlValues, lookAt:=xlWhole) 12 If Not c Is Nothing Then 13 c.Offset(1) = .Value 14 End If 15 End If 16 '上記コードは別の処理 17 18 19 '下記コードが質問内容に該当するコードです 20 If .Column Mod 2 = 0 Then 21 If Application.WorksheetFunction.CountIf(Range("B5:KU103"), Target.Value) > 1 Then 22 Set rng = Range("B5:KU103").Find(what:=Target.Value, lookAt:=xlPart) 23 If Not rng Is Nothing Then 24 25 If Not rng.Offset(0, 1).Value = "" Then 'この辺りの書き方がわかりません 26 MsgBox "重複しています!" 27 Target.Value "" 28 End If 29 End If 30 End If 31 End If 32 33 End With 34End Sub 35
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/24 03:59
2020/06/24 04:02
2020/06/24 04:29
2020/06/24 12:58 編集
2020/06/25 00:00
2020/06/25 00:14