回答編集履歴

1

説明追記

2021/12/13 08:13

投稿

hatena19
hatena19

スコア34360

test CHANGED
@@ -29,3 +29,71 @@
29
29
  例えば "4/1" と "12/31" だと "4/1" の方が大きいと判断される。
30
30
 
31
31
  文字列は前から順に比較していくので。
32
+
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ 意味不明なコードが紛れ込んでいますね。
40
+
41
+ それぞれのコードを意味を理解してください。
42
+
43
+
44
+
45
+ とりあえず下記でどうですか。
46
+
47
+
48
+
49
+ ```vba
50
+
51
+ Sub 年齢計算()
52
+
53
+ Dim ws1 As Worksheet
54
+
55
+ Dim ws2 As Worksheet
56
+
57
+ Set ws1 = Sheets("シート1")
58
+
59
+ Set ws2 = Sheets("シート2")
60
+
61
+
62
+
63
+ Dim LastRow As Long
64
+
65
+ LastRow = ws1.Cells(Rows.Count, 10).End(xlUp).Row
66
+
67
+
68
+
69
+ Dim 基準日 As Date
70
+
71
+ Dim 誕生日 As Date
72
+
73
+ Dim 年齢 As Variant
74
+
75
+
76
+
77
+ 基準日 = ws2.Range("AK3")
78
+
79
+
80
+
81
+ Dim i As Long
82
+
83
+ For i = 2 To LastRow
84
+
85
+ 誕生日 = ws1.Cells(i, 10).Value
86
+
87
+ 年齢 = DateDiff("yyyy", 誕生日, 基準日) + _
88
+
89
+ (Format(誕生日, "mm/dd") > Format(基準日, "mm/dd"))
90
+
91
+ ws1.Cells(i, 11).Value = 年齢
92
+
93
+ Next i
94
+
95
+
96
+
97
+ End Sub
98
+
99
+ ```