मेरे पास एक मैक्रो है जो वर्तमान में काम कर रहा है लेकिन 100% नहीं है और सोच रहा था कि क्या कोई कृपया इसकी समीक्षा कर सकता है। समस्या तब होती है जब एक संख्या सेल H24 में दर्ज की जाती है मैक्रो अन्य 4 कोशिकाओं की तरह गणना नहीं करता है।
यह वही है जो मैक्रो कर रहा है:
- जब निम्नलिखित कोशिकाओं में एक संख्या दर्ज की जाती है: D24, F24, H24, J24 और L24 और दर्ज किया जाता है तो प्रोग्राम एक गणना करता है और फिर उसके नीचे सेल में उत्तर पोस्ट करता है। इसलिए एक उदाहरण के रूप में, सेल L24 के लिए (7.77 दर्ज किया गया) उत्तर (1.55) सेल L25 में पोस्ट किया जाएगा। हमेशा 1 या सभी 5 कोशिकाओं में संख्या होगी।
किसी भी इनपुट / टिप्पणियों की सराहना की जाएगी।
CODE पोस्ट किए गए फर्जी पोस्टिंग:
VBAProject
Microsoft Excel ऑब्जेक्ट्स
शीट 1 (डेटा)
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
CODE पोस्ट किए गए फर्जी पोस्टिंग:
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
मुझे सॉल्वर के साथ कोई अनुभव नहीं है, और मुझे यकीन नहीं है कि यह क्या करता है, इसलिए केवल हमारे पास जो कुछ भी है, उसे देखते हुए, केवल एक चीज जो मैं सोच सकता हूं वह यह है कि H24 रेंज ("MyInputs") में शामिल नहीं है।
—
Christofer Weber
मैं उन सभी को धन्यवाद देना चाहता हूं जिन्होंने देखा, निश्चित प्रारूप लेकिन मुझे लगता है कि मैं इस पोस्ट को बंद करना चाहूंगा।
—
KAREN KENDALL