sasheg
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору vikkiv Спасибо! Цитата: перед Cells() внутри Range лучше поставить соответствующий Sheets() | Да, иначе вылетает ошибка. Если везде указать имя листа, то вариант с Range("A1:A" & i) тоже работает. Ниже три варианта записи. Может, пригодится кому-нибудь. Sub Test() Sheets.Add After:=Sheets("Лист1") ActiveSheet.Name = "Лист" i = 10 tmp1 = "AAA" tmp2 = 100 Sheets("Лист").Cells(2, 2).Value = "=countif(Лист1!A1:A10, ""=AAA"")" Sheets("Лист").Cells(3, 2).Value = WorksheetFunction.CountIf(Sheets("Лист1").Range(Sheets("Лист1").Cells(1, 1), Sheets("Лист1").Cells(i, 1)), tmp1) Sheets("Лист").Cells(4, 2).Value = WorksheetFunction.CountIf(Sheets("Лист1").Range("A1:A" & i), tmp1) Sheets("Лист").Cells(2, 4).Value = "=countifs(Лист1!A1:A10, ""=AAA"", Лист1!B1:B10, ""=100"")" Sheets("Лист").Cells(3, 4).Value = WorksheetFunction.CountIfs(Sheets("Лист1").Range(Sheets("Лист1").Cells(1, 1), Sheets("Лист1").Cells(i, 1)), tmp1, Sheets("Лист1").Range(Sheets("Лист1").Cells(1, 2), Sheets("Лист1").Cells(i, 2)), tmp2) Sheets("Лист").Cells(4, 4).Value = WorksheetFunction.CountIfs(Sheets("Лист1").Range("A1:A" & i), tmp1, Sheets("Лист1").Range("B1:B" & i), tmp2) End Sub |