Использование подстановочных знаков в Excel VBA - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь использовать подстановочные знаки в формуле для подсчета ячеек в столбце таблицы, которые содержат текст, а не ""

Я пробовал следующие методы:

  • Сравнение строк
Dim g As Integer

g = Application.WorksheetFunction.CountIf(ThisWorkbook.Worksheets("ws1").ListObjects("Table1").ListColumns("ColumnA").DataBodyRange, ""*?"")
  • Не удалось использовать тильду:
Dim g As Integer

g = Application.WorksheetFunction.CountIf(ThisWorkbook.Worksheets("ws1").ListObjects("Table1").ListColumns("ColumnA").DataBodyRange, ""~*?"")
  • При использовании символов ASCII ниже вернулось 0:
g = Application.WorksheetFunction.CountIf(ThisWorkbook.Worksheets("ws1").ListObjects("Table1").ListColumns("Column1").DataBodyRange, Chr(34) & Chr(63) & Chr(42) & Chr(34))

1 Ответ

1 голос
/ 01 мая 2019

Испытано и проверено:

Public Function not_qt(ByVal rng As Range) As Integer

    Dim cell As Range
    Dim counter As Integer: counter = 0

    For Each cell In rng
        If Not IsEmpty(cell) Then
            If Not cell Like Chr(34) & "*" & Chr(34) Then
                counter = counter + 1
                'cell.Offset(0, 1) = counter   '<- Only for illustration purposes
            End If
        End If
    Next cell

    not_qt = counter

End Function

enter image description here

...