Переключение активных листов и строк подсчета

Я проверяю количество строк на листе 1 и сравниваю это с количеством на листе 2, чтобы подтвердить, что все строки на листе 1 находятся на листе 2.

Во-первых, я выбираю, чтобы лист 1 был активным, а затем получал подсчет для строк, у которых есть данные

Во-вторых, я переключаю активный лист на лист 2. Лист 2 содержит строки, у которых есть данные, но листы 1 и 2 не равны в строках, содержащих данные.

ThisWorkbook.Worksheets("Sheet1").Select num = Application.WorsheetFunction.CountA(Range("A:A")) ThisWorkbook.Worksheets("Sheet2").Select num2 = Application.WorsheetFunction.CountA(Range("A:A")) 

Проблема в том, что каждый раз, когда я получаю значение для num2 , он всегда равен num, и я знаю, что это неверно. Если я вручную проверю countA (A1: A100) , я получаю значение, которое будет иметь num! = Num2 . Я предполагаю, что, хотя я перехожу на новый активный лист, вычисление num2 все еще определяется на основе листа 1. Это правда? Есть ли какая-то вопиющая проблема с моим кодом? Заранее спасибо.

Вам не нужно использовать Select здесь. Также старайтесь избегать их как можно больше.

Так что вам нужно только квалифицировать диапазон с его листом.

 num = Application.WorksheetFunction.CountA(Worksheets("Sheet1").Range("A:A")) num2 = Application.WorksheetFunction.CountA(Worksheets("Sheet2").Range("A:A")) 
Давайте будем гением компьютера.