回答編集履歴
2
Sheet1の日付のみを取得するように変えました。(時分秒は無視します)
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
Sheet1の日付のみを取得するように変えました。(時分秒は無視します)
|
1
|
-
|
2
|
+
及び下記のコーディング誤りを修正しました。
|
3
|
+
For row1 = 2 To maxrow2 -> For row1 = 2 To maxrow1
|
2
4
|
```VBA
|
3
5
|
Public Sub 注文番号及び日付チェック()
|
4
6
|
Dim dicT As Object 'キー:注文番号+日付 値:Sheet2の行番号
|
@@ -9,6 +11,7 @@
|
|
9
11
|
Dim sh2 As Worksheet 'Sheet2
|
10
12
|
Dim row1 As Long
|
11
13
|
Dim row2 As Long
|
14
|
+
Dim wdate As Date
|
12
15
|
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
|
13
16
|
Set sh1 = Worksheets("sheet1")
|
14
17
|
Set sh2 = Worksheets("sheet2")
|
@@ -21,8 +24,9 @@
|
|
21
24
|
dicT(key) = row2
|
22
25
|
Next
|
23
26
|
'Sheet1を処理する
|
24
|
-
For row1 = 2 To maxrow
|
27
|
+
For row1 = 2 To maxrow1
|
28
|
+
wdate = Int(sh1.Cells(row1, "Q").Value)
|
25
|
-
key = sh1.Cells(row1, "E").Value & "|" &
|
29
|
+
key = sh1.Cells(row1, "E").Value & "|" & wdate
|
26
30
|
'注文番号+日付がSheet2にも存在するなら赤色背景を設定
|
27
31
|
If dicT.exists(key) = True Then
|
28
32
|
sh1.Cells(row1, "E").Interior.Color = RGB(255, 0, 0)
|
@@ -30,5 +34,4 @@
|
|
30
34
|
Next
|
31
35
|
MsgBox ("完了")
|
32
36
|
End Sub
|
33
|
-
|
34
37
|
```
|
1
全面的に作り変えました。
test
CHANGED
@@ -1,19 +1,34 @@
|
|
1
|
-
|
1
|
+
全面的に作り変えました。
|
2
2
|
```VBA
|
3
|
-
Sub 日付
|
3
|
+
Public Sub 注文番号及び日付チェック()
|
4
|
+
Dim dicT As Object 'キー:注文番号+日付 値:Sheet2の行番号
|
5
|
+
Dim maxrow1 As Long 'Sheet1 最終行
|
6
|
+
Dim maxrow2 As Long 'Sheet2 最終行
|
7
|
+
Dim key As String
|
8
|
+
Dim sh1 As Worksheet 'Sheet1
|
9
|
+
Dim sh2 As Worksheet 'Sheet2
|
4
|
-
Dim
|
10
|
+
Dim row1 As Long
|
5
|
-
Dim
|
11
|
+
Dim row2 As Long
|
6
|
-
|
12
|
+
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
|
7
|
-
|
13
|
+
Set sh1 = Worksheets("sheet1")
|
14
|
+
Set sh2 = Worksheets("sheet2")
|
8
|
-
|
15
|
+
maxrow1 = sh1.Cells(Rows.Count, "E").End(xlUp).Row 'Sheet1 E列 最終行を求める
|
16
|
+
maxrow2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row 'Sheet2 A列 最終行を求める
|
9
|
-
|
17
|
+
sh1.Range("E2:E" & maxrow1).Interior.Pattern = xlNone
|
18
|
+
'Sheet2の注文番号+日付を記憶
|
10
|
-
|
19
|
+
For row2 = 2 To maxrow2
|
20
|
+
key = sh2.Cells(row2, "A").Value & "|" & sh2.Cells(row2, "E").Value
|
21
|
+
dicT(key) = row2
|
22
|
+
Next
|
23
|
+
'Sheet1を処理する
|
24
|
+
For row1 = 2 To maxrow2
|
11
|
-
|
25
|
+
key = sh1.Cells(row1, "E").Value & "|" & sh1.Cells(row1, "Q").Value
|
26
|
+
'注文番号+日付がSheet2にも存在するなら赤色背景を設定
|
12
|
-
|
27
|
+
If dicT.exists(key) = True Then
|
13
|
-
|
28
|
+
sh1.Cells(row1, "E").Interior.Color = RGB(255, 0, 0)
|
14
|
-
|
29
|
+
End If
|
15
|
-
|
30
|
+
Next
|
16
|
-
|
31
|
+
MsgBox ("完了")
|
17
32
|
End Sub
|
18
33
|
|
19
34
|
```
|