Я хочу, чтобы Goalseek проходил через несколько столбцов («BB: BP»). В настоящее время он работает со столбцом «BB» только следующим образом:Goalseek для нескольких столбцов
Значение в ячейке «BB63» изменяется, когда значение в ячейке «BB62» равно значению в ячейке «BB61».
Это код:
Sub Goalseek()
With Worksheets("sheet_input")
.Range("bc62").GoalSeek _
Goal:=.Range("bc61").Value, _
ChangingCell:=.Range("bc63")
End With
End Sub
Я хочу, чтобы создать цикл так, что он работает весь путь к колонке «BP», когда я бегу один макрос. Я придумал следующее:
Public Sub Goalseek()
Dim rngCol As Range
For Each rngCol In ActiveSheet.Range("BB61:BP63")
rngCol.Cells(54, 62).GoalSeek Goal:=rngCol.Cells(54, 61), ChangingCell:=rngCol.Cells(54, 63)
Next rngCol
End Sub
Но он не работает. Я получаю следующую ошибку:
Compile error: Only comments may appear after End Sub, End Function, or End Property
Что я делаю неправильно?
Hi Ambie. Спасибо за ваш ответ. Я забыл о определенном диапазоне. Он работает сейчас. Когда я хочу «перезапустить» целевого игрока, я устанавливаю значения в строке 63 равными 0. Есть ли способ его автоматизировать, поэтому перед тем, как я запустил макрос, все значения ячейки установлены в 0? – Saud
'rng.Offset (1) .Value = 0' – Ambie
Brilliant. Это сработало. Последнее, что мне нужно для того, чтобы этот макрос был полностью автоматическим, - настроить новую строку, строку 64, которая зависит от строк 61 и 62 следующим образом: Если значение в ячейке в строке 61 '> =' значение в ячейке в строке 62 ', затем «значение в ячейке в строке 64» = 1, в противном случае оно равно -1. Это необходимо сделать до инициализации цели поиска, в противном случае она будет равна 1 для всех столбцов. Логика интуитивная, но я не уверен, куда ее вставить. – Saud