Пожалуйста, смотрите ниже свой исправленный код, хотя проверяйте столбец «А». Смотрите комментарии для более подробной информации:
Option Explicit 'always use this, it will enforce you to declare your variables, which is well.. important.
Sub MsgBoxforLenLessThanTen()
Dim wsData As Worksheet
Set wsData = Worksheets("Sheet1")
Dim lastRow As Long 'Declare your variable
lastRow = wsData.UsedRange.Rows.Count 'You've declared your variable above for the sheet, use it
Dim i As Integer
Dim length As Integer
Dim msgValue As String: msgValue = "Not enough characters"
'try the for loop, is much easier
With wsData
For i = 1 To lastRow
length = Len(.Cells(i, "A"))
If length < 10 Then
'MsgBox msgValue
'Debug.Print msgValue & " at: " & .Cells(i, "A").Address
.Cells(i, "B").Value = msgValue
Else
'do something else
End If
Next i
End With
End Sub
РЕДАКТИРОВАТЬ: изменил вывод msgbox на столбец B вместо. Я рекомендую вам прочитать о Immediate Window и Locals Window , они очень помогают в отладке вашего кода, особенно когда вы проходите через (F8
).