Вот некоторые рекомендации, так как я не очень знаком с плагином SOLVER.Я также даже не знаком с вашей книгой Excel.
Этот макрос поможет вам начать работу.Вам нужно изменить этот код.Если вы запустите это как есть, это НЕ БУДЕТ МНОГО.
Sub OptoRun()
Dim currentPoint as Long
NumberOfLoops = InputBox("How Many Lineups?")
If NOT IsNumeric(NumberOfLoops) Then NumberOfLoops = 1
currentPoint = 1
Do until currentPoint > NumberOfLoops
'Insert a modified version of your code here
'use the (currentPoint) variable for the current position within the loop
'Example: ActiveSheet.Cells(CurrentPoint, 1).Value = ActiveSheet.Cells(CurrentPoint, 1).Address
currentPoint = currentPoint + 1
Loop
End Sub
Я разместил комментарий выше о том, куда вы будете вставлять ваш измененный код.Чтобы определить текущую позицию, вы будете использовать переменную CurrentPoint
. Эта переменная будет возвращать текущее число в цикле и может использоваться как уникальная позиция.
Например, выможно использовать что-то вроде этого ...
ActiveSheet.Cells(CurrentPoint, 1).Value = ActiveSheet.Cells(CurrentPoint, 1).Address
Выше будет просто сделать что-нибудь между строкой 1, столбцом 1 ($ A $ 1) для любого входного значения (то есть, если 100 являетсявведите $ A $ 100), равный адресу.(т. е. если вход 100, то все между A1 и A100 будет равно адресу ячейки)
Теперь, похоже, что вы используете свойство Range
, вы можете достичь того же результата, переключившиськ свойству Cells, но вы не сможете использовать «Friendly Names».