एक्सेल मैक्रो एक सेल के लिए (छोड़कर) काम करता है


0

मेरे पास एक मैक्रो है जो वर्तमान में काम कर रहा है लेकिन 100% नहीं है और सोच रहा था कि क्या कोई कृपया इसकी समीक्षा कर सकता है। समस्या तब होती है जब एक संख्या सेल H24 में दर्ज की जाती है मैक्रो अन्य 4 कोशिकाओं की तरह गणना नहीं करता है।

यह वही है जो मैक्रो कर रहा है:

  1. जब निम्नलिखित कोशिकाओं में एक संख्या दर्ज की जाती है: D24, F24, H24, J24 और L24 और दर्ज किया जाता है तो प्रोग्राम एक गणना करता है और फिर उसके नीचे सेल में उत्तर पोस्ट करता है। इसलिए एक उदाहरण के रूप में, सेल L24 के लिए (7.77 दर्ज किया गया) उत्तर (1.55) सेल L25 में पोस्ट किया जाएगा। हमेशा 1 या सभी 5 कोशिकाओं में संख्या होगी।

किसी भी इनपुट / टिप्पणियों की सराहना की जाएगी।

excel image

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.