Диапазон содержит текстовые данные, но ошибки как ничего - PullRequest
0 голосов
/ 17 июня 2020

В моем определенном диапазоне Sheet2 B4 и B5 есть имена. Я ищу имена в списке и возвращаю счет. Мое определение rng вызывает исключение и возвращает rng как «Nothing». Я не вижу ничего плохого в том, как я это определил.

Sub countPeople()

Dim iVal As Integer
Dim Lastrow As Integer
Dim rng As Range, cell As Range
Dim rng2 As Range
Dim ws As Worksheet
Set ws = Sheets("Sheet2")

rng = ws.Range("B4:B5")
Lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

For Each cell In rng
    iVal = Application.WorksheetFunction.CountIf(Sheet1.Range("E2:E" & Lastrow), Sheet2.Range(cell))
    cell.Offset(0, 1) = iVal
Next cell

End Sub

Обновление

Удалены ссылки как комментарий. Обновлено, чтобы включить явную опцию. Сейчас на отладке

iVal = Application.WorksheetFunction.CountIf(Sheet1.Range("E2:E" & Lastrow), Sheet2.Range(cell))

Нарушает код. Однако ошибка не отображается, а Lastrow и ячейка содержат правильные значения. ячейка - это имя из B4 Sheet2, которое я sh ищу в E2: Lastrow in Sheet1.

Новый код завершен.

Option Explicit

Sub countPeople()

Dim iVal As Integer
Dim Lastrow As Integer
Dim rng As Range, cell As Range

Set rng = Range("B4:B5")
Lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

For Each cell In rng
    iVal = Application.WorksheetFunction.CountIf(Sheet1.Range("E2:E" & Lastrow), Sheet2.Range(cell))
    cell.Offset(0, 1) = iVal
Next cell

End Sub

Обновление 2 Я слишком явно использовал ссылку на ячейку

Изменение

Sheet2.Range(cell))

на

cell

Исправлено

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