Макрос Excel работает (кроме) для одной ячейки
221
KAREN KENDALL
У меня есть макрос, который в настоящее время работает, но не на 100%, и мне было интересно, если кто-то может просмотреть его. Проблема в том, что когда число вводится в ячейку H24, макрос не выполняет вычисления, как остальные 4 ячейки.
Вот что должен делать макрос:
- Когда число вводится в следующие ячейки: D24, F24, H24, J24 и L24 и нажимается ввод, программа выполняет вычисление, а затем отправляет ответ в ячейку под ним. Например, для ячейки L24 (введено 7,77) ответ (1,55) будет размещен в ячейке L25. Всегда будут цифры в 1 или во всех 5 ячейках.
Любой вклад / комментарии будут оценены.
КОД, РАЗМЕЩЕННЫЙ ПОД СЛЕДУЮЩИМ:
VBAProject
Microsoft Excel Объекты
Sheet1 (Данные)
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("MyInputs")) Is Nothing Then Exit Sub If Target = 0 Or Target = vbNullString Then Exit Sub Dim cLet As String Target.Offset(1, 0).ClearContents If Target.Value > 0 Then cLet = Target.Offset(2, 0).Value Range("B23").Formula = "=A23+INDIRECT(""" & cLet & """&""24"")" Range("C23").Formula = "=A23/2*INDIRECT(""B""&INDIRECT(""" & cLet & """&""23""))" ' Run Solver Application.Run ("RunSolver") 'Reset 'Activecell = 0 End If End Sub
КОД, РАЗМЕЩЕННЫЙ ПОД СЛЕДУЮЩИМ:
Modules Module1 Option Explicit Sub Preparation() Dim cLet As String ActiveCell.Offset(2, 0).ClearContents If ActiveCell.Value > 0 Then cLet = ActiveCell.Offset(1, 0).Value Range("B23").Formula = "=A23+INDIRECT(""" & cLet & """&""24"")" Range("C23").Formula = "=A23/2*INDIRECT(""B""&INDIRECT(""" & cLet & """&""23""))" ' Run Solver Application.Run ("RunSolver") 'Reset 'Activecell = 0 End If End Sub Private Sub RunSolver() Dim iLng As Long Dim Result iLng = Range("A23").Value ' Reset Application.Run "Solver.xlam!SolverReset" ' Set up new analysis Application.Run "Solver.xlam!SolverOk", "$B$23", 2, "0", "$A$23" ' Add constraints Application.Run "Solver.xlam!SolverAdd", "$B$23", 2, "$C$23" ' run the analysis Result = Application.Run("Solver.xlam!SolverSolve", True) ' finish the analysis Application.Run "Solver.xlam!SolverFinish" ' save the model 'Application.Run "Solver.xlam!SolverSave", "$R$2" 'SolverSolve UserFinish:=False 'SolverSave SaveArea:=Range("A33") ' report on success of analysis If Result <= 3 Then ' Result = 0, Solution found, optimality and constraints satisfied ' Result = 1, Converged, constraints satisfied ' Result = 2, Cannot improve, constraints satisfied ' Result = 3, Stopped at maximum iterations 'Display Result Cells(25, ActiveCell.Column).Value = Range("A23").Value Range("A23").Value = iLng MsgBox "Solver found a solution", vbInformation, "SOLUTION FOUND ..." Else ' Result = 4, Solver did not converge ' Result = 5, No feasible solution Beep MsgBox "Solver was unable to find a solution.", vbExclamation, "SOLUTION NOT FOUND ..." End If End Sub
Я проголосовал за то, чтобы очистить, поскольку вы недостаточно форматировали свой вопрос, чтобы сделать его читабельным. Пожалуйста, отредактируйте ваш вопрос, отформатируйте его правильно, и тогда я уверен, что мы можем помочь :)
Dave 5 лет назад
0
У меня нет опыта работы с Solver, и я не уверен, что он делает, поэтому, глядя только на то, что у нас здесь, я могу думать только о том, что H24 не включен в Range («MyInputs»).
Christofer Weber 5 лет назад
0
Я хотел бы поблагодарить всех, кто смотрел, фиксированный формат, но я думаю, что я хотел бы закрыть этот пост.
KAREN KENDALL 5 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
2
Конвертировать макрос Excel 4.0 в VBA
-
3
Исправить (сегодня) дату в Excel
-
4
Excel 2007 | Удалить пустые поля из сводных таблиц
-
-
2
Как будет выглядеть макрос Outlook 2007 для автоматизации Специального вставки - неформатированный т...
-
4
Открыть несколько экземпляров Excel без сообщения блокировки PERSONAL.xlsb
-
5
Выделить весь столбец без строки заголовка в макросе Excel
-
1
Восстановить пароль защиты листа в Excel
-
2
Excel VBA: как очистить выделение без активации листа
-
1
добавить текстовую строку слева от всех ячеек столбца в Excel 2002?
-
2
Макрос для открытия гиперссылок Excel