почему окно msg не работает, когда я пытаюсь запустить цикл с VBA - PullRequest
1 голос
/ 28 мая 2019

Я пытаюсь запустить цикл, чтобы проверить, имеет ли длина строки в столбце хотя бы десять символов.Я отлаживал и проблем не было.Тем не менее, я протестировал его со строкой длиной менее 10 символов, окно сообщения не появилось.Я очень новичок в VBA, поэтому кто-нибудь может указать, в чем моя проблема?Большое вам спасибо.

Sub MsgBoxforLenLessThanTen()

    Dim wsData As Worksheet
    Set wsData = Worksheets("Sheet1")
    lastRow = ActiveSheet.UsedRange.Rows.count

    Dim i As Integer
    Dim length As Integer

    i = 1
    With wsData.Range("A1:A" & lastRow)
        Do Until i > lastRow
            length = Len(Range("A1").Offset(0, 1))
            If length < 10 Then MsgBox "not enough characters"
            i = i + 1
            Loop
    End With

End Sub

1 Ответ

2 голосов
/ 28 мая 2019

Пожалуйста, смотрите ниже свой исправленный код, хотя проверяйте столбец «А». Смотрите комментарии для более подробной информации:

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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...