Имена столбцов вместо заголовков столбцов в качестве диапазона

У меня есть ниже код, который ищет столбец в листе, используя диапазон col в качестве значения. Вместо этого мне нужно использовать имя col (в этом листе) в качестве критерия поиска и выполнять ту же функцию.

Я попробовал другой подход, чтобы сделать это, и я получаю синтаксическую ошибку.

ОРИГИНАЛЬНЫЙ КОД:

Sub WBR()
Dim Count1Criteria As Variant
Dim Count3Criteria As Variant
Dim test As Variant
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction

Filter3InSummary = Array(Array("AE43", "TT", "I:I", "<>Duplicate TT", _
                                     "G:G", "<>Not Tested", _
                                     "U:U", "Item"))
For Each test In Filter3InSummary
With Worksheets(test(1))
Range(test(0)) = wf.CountIfs(.Range(test(2)), test(3), _
                             .Range(test(4)), test(5), _
                             .Range(test(6)), test(7))
End With
Next

КОД, В КОТОРОМ Я ПОЛУЧАЮ СИНТАКСИЧЕСКУЮ ОШИБКУ :

Sub WBR()
Dim Count1Criteria As Variant
Dim Count3Criteria As Variant
Dim test As Variant
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction

Filter3InSummary = Array(Array("AE43", "TT", "Cname1", "<>Duplicate TT", _
                                     "Cname2", "<>Not Tested", _
                                     "Cname3", "Item"))
For Each test In Filter3InSummary
With Worksheets(test(1))

Range(test(0)) = wf.CountIfs(.rows(1).Find(test(2),lookat:xlWhole).EntireColu‌​mn), test(3), _ .rows(1).Find(test(2),lookat:xlWhole).EntireColumn), test(5), _ .rows(1).Find(test(2),lookat:xlWhole).EntireColumn), test(7))

1 ответ

  1. У вас есть дополнительная закрывающая скобка после каждогоEntireColumn, и вы пропускаете равные знаки для каждого именованного параметра.

    Range(test(0)) = _
    wf.CountIfs( _
    .Rows(1).Find(test(2), lookat:=xlWhole).EntireColumn, test(3), _
    .Rows(1).Find(test(2), lookat:=xlWhole).EntireColumn, test(5), _
    .Rows(1).Find(test(2), lookat:=xlWhole).EntireColumn, test(7))