Countif VBA - изменение элементов (ячеек) в массиве без a для l oop и без изменения исходных данных - PullRequest
0 голосов
/ 11 апреля 2020

Я пытался либо в = countif (A $ 1: A $ 118, B2), либо в vba сделать что-то с диапазоном без изменения ячеек, столбца или диапазона перед выполнением формулы, и я не смог. Поэтому я адаптировал код, который нашел для работы с массивом, прежде чем рассчитывать по критериям:

 Function countifcode4(rng As Range, crit As String)
 cnt = 0

 For Each jesepeak In rng

 jesepeak2 = Chr(34) & jesepeak & Chr(34) 'so ive changed the range to values - something, in this case "values"

 s = jesepeak2 = crit
test = Evaluate(s)

If test = True Then
cnt = cnt + 1
End If

Next

countifcode4 = cnt


End Function

Он выполняет свою работу, но на самом деле это не массив, не так ли? Это для l oop, идущего вниз по диапазону клеток. (и он почти не работает, если выбран весь диапазон A: A, и я запускаю его)

То, что я ищу, - это способ сделать это сразу на VBA. Работайте с диапазоном, не изменяя его внешний вид на листе, и выполняйте бэкэнд контфина, используя другой метод, который я использовал, чем для, если l oop.

как здесь:

скажем B2: B11 имена содержащихся фруктов,

    application.WorksheetFunction.CountIf(Range(“B2:B11”,”Apple”)) 
  • Есть ли способ изменить значения в B2: B11 без изменения ячеек B2: B11 и есть ли указатель на этот новый измененный массив?

или здесь:

  Var = Application.WorksheetFunction.CountIf(Range("D3:" & c), "Apples-2")

Могу ли я изменить элементы D: D без изменения значений ячеек на рабочем листе, сделать это в vba и без l для 10 * *, (по сути, изменив бэкэнд массива D: D на Fruits-2 или "fruits") и вместо этого ищите Apples-2 или "" Apple ""?

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