Как установить значение поиска цели с помощью поля ввода? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть файл Excel, в котором я должен выполнить задачу поиска VBA для достижения определенного числа. Но каждый раз, когда я запускаю это в другой ячейке, мне нужно вручную изменить число, необходимое для поиска цели. Есть ли какой-нибудь способ открыть окно ввода, в котором я могу поставить нужное число, и тогда макрос будет выполняться для выполнения операции?

В приведенном ниже коде цель поиска установлена ​​на 40. Но когда мне нужноцель, которую я должен изменить номер вручную. я ожидаю некоторого расширения, которое будет требовать число, ищущее цели каждый раз, когда я запускаю макрос. Любая идея, пожалуйста?

'
' Run_DIO Macro
'
' Keyboard Shortcut: Ctrl+q
'

    ActiveCell.GoalSeek Goal:=40, ChangingCell:=ActiveCell.Offset(-4, -1).Range( _
        "A1")
    ActiveCell.Offset(-3, -1).Range("A1").Select
    Selection.Copy
    ActiveCell.Offset(-1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Offset(4, 2).Range("A1").Select
End Sub

1 Ответ

2 голосов
/ 04 ноября 2019

Конечно ... просто добавьте переменную:

Dim iGoal As Integer
iGoal = InputBox("Enter Goal")
ActiveCell.GoalSeek Goal:=iGoal, ChangingCell:=ActiveCell.Offset(-4, -1).Range( _
    "A1")

Просто надейтесь, что они введут число, или вы получите сообщение об ошибке.

, если оно у вас в цикле, получитеввод перед началом цикла:

Dim iGoal As Integer
iGoal = InputBox("Enter Goal")

' code to start loop goes here

ActiveCell.GoalSeek Goal:=iGoal, ChangingCell:=ActiveCell.Offset(-4, -1).Range( "A1")

' also the rest of the code you want to loop goes here

' code to end loop goes here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...