|
▼コンソール さん:
おはようございます
本題の前に。
処理対象の領域について
9 行目から Cells(4, 9).End(xlDown).Row つまり I4より下の I列 最終データまでと
しておられますね。 もし、I列にデータが 6行目までしかなかった場合、9 To 6 となりますよ?
一方、処理を行うセルは Cells(ckk, 4) これは D列ですね?
もし、D列が対象なら
For ckk = 9 To Cells(9, 4).End(xlDown).Row ではないですか?
以下は Dレを対象にするとした場合のサンプルです。
(セル記述、Cells でもいいのですが、見た目、わかりやすいと思いますのでRangeにしてあります)
Sub Sample1()
Dim s As Variant
Dim ckk As Long
Dim n As String
For ckk = 9 To Range("D9").End(xlDown).Row
s = Range("D" & ckk).Value
n = Replace(s, ".", "")
If Not IsNumeric(n) Or Len(s) <> Len(n) + 3 Then
MsgBox ckk & "行の値にエラーがあります" & vbLf & s
End If
Next
End Sub
Sub Sample2()
Dim s As Variant
Dim ckk As Long
Dim n As String
For ckk = 9 To Range("D9").End(xlDown).Row
s = Range("D" & ckk).Value
n = Join(Split(s, "."), "")
If Not IsNumeric(n) Or Len(s) <> Len(n) + 3 Then
MsgBox ckk & "行の値にエラーがあります" & vbLf & s
End If
Next
End Sub
|
|