Я сделаю все возможное, чтобы попытаться объяснить мою проблему, но это все еще немного нечеткое в моей голове, поэтому это может быть не так ясно, как должно быть, за что я заранее извиняюсь ,VBA: Синтаксис для динамических диапазонов CountIf
Вот часть моего кода у меня возникают проблемы с:
If Application.WorksheetFunction.countif(Range("D:D"), Cells(x, firstcolumn).Value) _
And Application.WorksheetFunction.countif(Range("F:F"), Cells(x, firstcolumn).Value) _
And Application.WorksheetFunction.countif(Range("H:H"), Cells(x, firstcolumn).Value) Then
Идея этого проекта, чтобы проверить, если значения в «Cells (х, firstcolumn)» присутствуют в столбцах D, F и H одновременно, а затем вставьте значения где-то еще. Однако количество столбцов для проверки значений «Ячейки (x, firstcolumn)» может быть изменено, поэтому значения должны быть проверены в любом количестве столбцов (2, 10 и т. Д.). Мой код отлично работает для указанных диапазонов, но если он отсутствует или больше добавлен, он перестает работать.
Столбцы, подлежащие проверке, всегда смещаются на 2 из первого столбца, а firstcolumn всегда B, он будет проверяться на D, F, H и т. Д., В то время как столбцы C, E, G и т. Д. Имеют другие данные, не относящиеся к эта часть.
Моя догадка иметь COUNTIF Изменяется динамически изменяться, но я в недоумении, когда и как это должно быть сделано ...
Может кто мне точку в правильном направлении, чтобы достичь этого ? При необходимости я могу опубликовать полный код.
Cheers!
Просто примечание стороны, ваше 'условие If' хак, нет логического выражения что VBA объединяет результат «WorksheetFunction.CountIf» в 'Boolean', поэтому ваш код вводит блок« Then »только тогда, когда все числа больше 0 - изменение кода для чтения« If Application.WorksheetFunction ». CountIf (...)> 0 И ... Тогда' сделает намерение более ясным. –