Excel VBA Если сбой Cells.Comment - PullRequest
0 голосов
/ 16 ноября 2018

Опять вопрос по поводу комментариев.Я хочу проверить, содержит ли ячейка определенное значение комментария.Я получаю сообщение об ошибке при запуске этого скрипта:

For AA = 0 To 200
For BB = 0 To 200
    If Worksheets("Config IO").Range("D7").offset(0, 0).Value = "1" Then
        If Worksheets("Config Algemeen").Cells(2 + AA, 9 + BB).Comment = "DI" Then
            Aantal_DI = Aantal_DI + 1
        Else
            'Nothing
        End If
    Else
        'Nothing
    End If
Next BB
Next AA

Понятия не имею, что с этим не так.Я получаю это сообщение: это свойство или метод не поддерживается объектом.Эта ошибка во второй строке «IF».

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Проверяет, что комментарий существует, прежде чем пытаться ссылаться на текст внутри него.

  • Я переместил первую проверку IF за пределы цикла, поскольку она каждый раз ссылается на одну и ту же ячейку.
  • Я также снял Offset(0,0), так как он смещается на 0 строк и 0 столбцов - тот же адрес, что и оригинал.
  • Я также снял .Value, так как это свойство по умолчанию для диапазона.

Sub Test()

    Dim AA As Long, BB As Long

    If Worksheets("Config IO").Range("D7") = "1" Then
        For AA = 0 To 200
            For BB = 0 To 200
                With Worksheets("Config Algemeen").Cells(2 + AA, 9 + BB)
                    If Not .Comment Is Nothing Then
                        If .Comment.Text = "DI" Then
                            Aantal_DI = Aantal_DI + 1
                        End If
                    End If
                End With
            Next BB
        Next AA
    End If

End Sub
0 голосов
/ 16 ноября 2018

Заменить:

If Worksheets("Config Algemeen").Cells(2 + AA, 9 + BB).Comment = "DI" Then

На:

If Worksheets("Config Algemeen").Cells(2 + AA, 9 + BB).Comment.Text = "DI" Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...