Я работаю над документом Excel, используя VBA. Этот документ содержит базу данных с несколькими столбцами, но для простоты предположим, что у меня есть 2 столбца:
- Столбец C соответствует именам
- Колонка F соответствует числам.
Я пытаюсь создать макрос, который проверяет все числа в столбце F (с циклом). Если число больше 100, то проверьте соседнюю ячейку в столбце С. Если имя соответствует условию (скажем, соответствует Джону или Тому), то добавьте значение числа в другой лист. Если ни один из них не подходит, проверьте следующую ячейку.
Моя проблема в том, что я не могу найти способ определить ячейки в столбце C (создание переменной/объекта для вызова ячеек или прямой вызов соседней ячейки).
Мой код выглядит так:
Sub Test1()
Dim rngnumbers, rngnames, MultipleRange As Range
Set rngnumbers = Sheet2.Range("F2:F999")
Set rngnames = Sheet2.Range("C2:C999")
Set MultipleRange = Union(rngnumbers, rngnames)
For Each numb In rngnumbers
If numb.Value >= 100 Then
If Sheet2.Range("C2") = "John" Or Sheet2.Range("C2") = "Tom" Then '''The problem here is that it only looks at the cell C2 and not the adjacent cell
Sheet1.Range("I999").End(xlUp).Offset(1, 0).Value = numb.Value
Else
End If
End If
Next numb
End Sub
Я попытался изменить строку:
'If Sheet2.Range("C2") = "John" Or Sheet2.Range("C2") = "Tom"
Затем что-то вроде: 'newname.String = "John" '
Но я не могу найти способ определить newname
. Другой идеей было бы увеличить оператор If для имен внутри цикла For.
Дополнительное примечание: я также не использую формулы непосредственно в Excel, поскольку мне не нужны пустые ячейки или нули, когда функции if имеют значение False.