初心者のため頓珍漢な質問だと思いますがご容赦ください。
以下のようなコードを書いたのですが、「Nextに対応するForがありません。」と表示されるため実行できません。
見た目には正しいように思えるのですが、どこが間違っているのでしょうか?
ご回答いただけますと幸いです。
よろしくお願いいたします。
Sub 文字列検索()
Dim MaxRow As Byte, MaxRow2 As Byte, i As Byte, length As Byte, j As Byte, MaxLen As Integer, k As Integer, start As Integer
MaxRow = Range("A1").End(xlDown).Row
If Range("I2").End(xlDown).Row > 200 Then
MsgBox "検索文字が入力されていません。"
Exit Sub
End If
MaxRow2 = Range("I2").End(xlDown).Row
For i = 2 To MaxRow2
If Len(StrConv(Cells(i, 9), vbKatakana)) < Len(StrConv(Cells(i, 9), vbKatakana + vbNarrow)) Then
length = Len(Cells(i, 9)) + 1
Else
length = Len(Cells(i, 9))
Cells(i, 9).Select
For j = 2 To MaxRow
MaxLen = Len(Cells(j, 5))
For k = 1 To MaxLen
If InStr(k, Cells(j, 5), Cells(i, 9)) > 0 Then
start = InStr(k, Cells(j, 5), Cells(i, 9))
Cells(j, 5).Characters(start:=start, length:=length).Font.Size = 16
Cells(j, 5).Characters(start:=start, length:=length).Font.ColorIndex = 3
k = start
Else
k = MaxLen
End If
Next k
Next j
Next i
End Sub
回答4件
あなたの回答
tips
プレビュー