Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

scr.Eval(strCodeRuleToEvaluate) Excel 2016 vs. M365

scr.Eval(strCodeRuleToEvaluate) Excel 2016 vs. M365
11.08.2023 09:31:31
Martin Kölsch
Hallo Zusammen.
Ich lese schon seit einiger Zeit hier mit und habe auch schon ganz tolle Anregungen mitnehmen können.
Was mir auch gut gefällt ist der Umgangston, ihr seid toll.

Jetzt also mein erster Beitrag.
Ich komme nicht mehr weiter.

Mit erschrecken musste ich feststellen, dass eine Funktion, die auf Excel 2016 läuft auf dem neuen (Vorgabe von der IT) M365 nicht mehr läuft.

Ich generiere anhand von Treffern in einem String, abhängig von einer Vorgabe, eine Aussage:
Vorgabe: A1A B2B C3C D4D E5E F6F G7G H8H I9I J0J K1K ABC DEF EFG HIJ KLM ABCD EFGH IJKL
String: (A1A/B3B)+C3C+D4D+-D5D/G7G+KLM+(ABCD/EEEE)+AAA
Wahrheitsgehalt währe hier: True oder Wahr
(Wahr/Falsch)+Wahr+Wahr+Wahr / Wahr+Wahr+(Wahr/Falsch)+Falsch >>> Ausage wäre Wahr

In meiner Berechnung schaut das dann so aus:
(Wahr or Falsch) and Wahr and Wahr and Wahr or Wahr and Wahr and (Wahr or False) and Falsch

Den Wahrheitsgehalt überprüfen tut dann der folgender Abschnitt:

Set scr = CreateObject("MSScriptControl.ScriptControl")
scr.Language = "VBScript"
pp = scr.Eval(strCodeRuleToEvaluate)

pp bekommt hier Wahr oder Falsch zugeordnet, aber nur bei Excel 2016.
Sobald ich das Makro in M365 laufen lasse, dann passiert hier nichts mehr.

Jetzt habe ich zwei Fragen.
1. Kann M365 das nicht mehr oder muss ich eventuell ein AddOn installieren damit M365 das kann?
2. Gibt es eine Alternative um in M365 einen Wahrheitsgehalt zu generieren?

Vielen Dank schon mal vorab, dass ihr das Problem gelesen habt und darüber nachdenkt :-)
Grüße, Martin


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: scr.Eval(strCodeRuleToEvaluate) Excel 2016 vs. M365
11.08.2023 11:17:03
Ulf
Hi Martin
scheint mir unlogisch


Public Sub divisionDurchNull()
On Local Error GoTo ddERR
Dim scr As MSScriptControl.ScriptControl
Dim strCodeRuleToEvaluate As String
Dim pp As Boolean
strCodeRuleToEvaluate = "(" & "A1A" & " or " & "B3B" & ")"
'True
'strCodeRuleToEvaluate = "(" & "A1A" & " / " & "B3B" & ")"
'6
'Überlauf
'strCodeRuleToEvaluate = "1 or 0" oder "true or false"
'True
'strCodeRuleToEvaluate = "1 / 0" oder "true / false"
'11
'Division durch Null
Set scr = New MSScriptControl.ScriptControl
scr.Language = "VBScript"
pp = scr.Eval(strCodeRuleToEvaluate)
Debug.Print pp
Exit Sub
ddERR:
Debug.Print Err.Number & vbCrLf & Err.Description
End Sub

hth
Ulf
Anzeige
AW: scr.Eval(strCodeRuleToEvaluate) Excel 2016 vs. M365
11.08.2023 11:32:21
Martin
Hallo Ulf,
danke für die Antwort.
Ich lasse folgende Operation durchführen.

Wobei die Variable strcodeleiste der Pool der Codes ist und Vercodung(i) ist die Variable, gebildet aus der zu analysierenden Codevorgabe.

strcodeleiste = A1A B2B C3C D4D E5E F6F G7G H8H I9I J0J K1K ABC DEF EFG HIJ KLM ABCD EFGH IJKL
Vercodung(i) = (A1A/B3B)+C3C+D4D+-D5D/G7G+KLM+(ABCD/EEEE)+AAA (step by step, alle abgelegt im Array)

ReDim Preserve Vercodung(LastNonEmpty)
strCodeRuleToEvaluate = strCoderegel
strCodeRuleToEvaluate = Replace(strCodeRuleToEvaluate, "+", " and ")
strCodeRuleToEvaluate = Replace(strCodeRuleToEvaluate, "-", " not ")
strCodeRuleToEvaluate = Replace(strCodeRuleToEvaluate, "/", " or ")
For i = 0 To UBound(Vercodung)
If InStr(1, strcodeleiste, Vercodung(i), 1) > 0 Then
strCodeRuleToEvaluate = Replace(strCodeRuleToEvaluate, Vercodung(i), "True")
Else
strCodeRuleToEvaluate = Replace(strCodeRuleToEvaluate, Vercodung(i), "False")
End If
Next

Set scr = CreateObject("MSScriptControl.ScriptControl")
scr.Language = "VBScript"
pp = scr.Eval(strCodeRuleToEvaluate)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige