Я работаю над документом Excel, используя VBA. Этот документ содержит базу данных с несколькими столбцами, но для простоты, скажем, у меня есть 2 столбца:
- Столбец C соответствует именам
- Столбец F соответствует числам.
Я пытаюсь создать макрос, который проверяет все числа в столбце F (с помощью цикла). Если число превышает 100, то проверьте соседнюю ячейку в столбце C. Если имя соответствует условию (скажем, соответствует Джону или Тому), добавьте значение числа на другом листе. Если ни один из них не подходит, проверьте следующую ячейку.
Моя проблема в том, что я не могу найти способ определения ячеек в столбце 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.