Я не совсем уверен, что вы пытаетесь сделать здесь (или почему), но я попробую это сделать.
Для начала вам нужно объявить ячейку, хотя ячейка уже имеет значение, поэтому я бы изменил это имя или загрузил два диапазона в массивы.
Dim targetrow() as variant
dim targetcol() as variant
cell.total
это не вещь, вы, вероятно, имели в виду cell.value
.
Если вы хотите добавить один элемент из строки и один из столбца, ваш текущий код не сделает этого. Он просто перебирает все ячейки в вашем диапазоне и сравнивает значение с ihighval
и ilowval
.
Эти две следующие строки мало что делают, ваша активная ячейка будет той, на которую вы нажали, затем вы активируете ту, которая находится под ней. Если вы хотите создать новый столбец данных, лучше указать диапазон. Поскольку ваши данные представлены в табличном формате, я просто помещу их на пересечении соответствующей строки и столбца.
ActiveCell.Value = cell.Value
ActiveCell.Offset(1, 0).Activate
Sub ExtractValues()
dim iLowVal as integer
dim iHighVal as integer
dim TargetRow() as variant
dim TargetCol() as variant
dim RowElem as variant
dim ColElem as variant
dim CurrentRow as integer
dim CurrentCol as integer
iLowVal = InputBox("Lowest value wanted?")
iHighVal = InputBox("Highest value wanted?")
TargetRow = Range("A16:A26").value
TargetCol = Range("C15:L15").value
CurrentRow = 16
for each RowElem in TargetRow
if RowElem >= iLowVal and RowElem <= iHighVal then
CurrentCol = 3
for each ColElem in TargetCol
if ColElem >= iLowVal and ColElem <= iHighVal then
cells(CurrentRow, CurrentCol).value = RowElem + ColElem
end if
CurrentCol = CurrentCol + 1
Next
end if
CurrentRow = CurrentRow + 1
Next
End Sub
Я ничего не делал с суммой, близкой к 1309, потому что я не знаю, что вы там делаете. Если вы хотите, чтобы он был в пределах пятидесяти или что-то в этом роде, вам просто понадобится аналогичная проверка значения, как и для низкого и высокого значений. Если низкий и высокий значения предназначены для применения к сумме, а не к элементам, вам просто нужно переместить условное выражение.