Autor
|
Thema: aufeinander folgende Messwerte auswerten (2140 mal gelesen)
|
CADdoctor Mitglied Technischer Zeichner (Versorgungstechnik)
Beiträge: 313 Registriert: 12.05.2007 Software: AutoCAD MEP 2013 Excellink 2013 Windows 7 x64 Pro SP 1 Office 2010 SP 1 Mozilla Firefox 13.0.1 Mozilla Thunderbird 13.0.1<P>Hardware: ASUS P6T WS Professional Intel Core i7-920, 4x 2.67GHz PNY Quadro FX 1800 Kingston HyperX DIMM XMP Kit 6GB Kingston HyperX SSD 120GB, SATA 6Gb/s
|
erstellt am: 12. Aug. 2011 08:09 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen! In meiner Tabelle befinden sich mehrere Tausend Messwerte, die Ich auswerten möchte. Die Messergebnisse sind immer in aufsteigender Reihenfolge angeordnet. In einer eigenen Spalte werden aufeinander folgende Messwerte per VBA ausgegeben. Jedoch können in einer Zeile auch folgende Werte vorkommen. |3|4|18|23|24|25| ---> 2x3 |8|9|10|26|27|28| ---> 3x3 |5|6|7|8|32|33| ---> 4x2
Bei diesen aufeinander folgenden Messwerten werden falsche Werte ausgegeben. Was mache Ich falsch? ------------------ Mit freundlichen Grüßen CADdoctor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 12. Aug. 2011 08:26 <-- editieren / zitieren --> Unities abgeben: Nur für CADdoctor
Hallo CADdoctor, du musst dir deinen Maximalwert innerhalb einer Zeile merken und den ausgeben. Die angepasste Funktion könnte so aussehen: Code:
Function MW_Auswerten(MW1 As Integer, MW2 As Integer, MW3 As Integer, MW4 As Integer, MW5 As Integer, MW6 As Integer) As Integer Dim MW(6) As Integer, i As Integer Dim Aufeinanderfolgend As Integer Dim AufeinanderfolgendMax As Integer MW(1) = MW1: MW(2) = MW2: MW(3) = MW3: MW(4) = MW4: MW(5) = MW5: MW(6) = MW6 Aufeinanderfolgend = 1 AufeinanderfolgendMax = 0 For i = 2 To 6 Step 1 ' wenn zwei Zellen sich nur um +1 unterscheiden If MW(i) = MW(i - 1) + 1 Then Aufeinanderfolgend = Aufeinanderfolgend + 1 Else ' wenn nicht den Zähler wieder auf zurücksetzen Aufeinanderfolgend = 1 End If ' mal schauen, ob der aktuelle Zähler für maximal aufeinanderfolgende ' Werte höher ist als das bisherige Maximum If Aufeinanderfolgend > AufeinanderfolgendMax Then AufeinanderfolgendMax = Aufeinanderfolgend End If Next i ' und den ermittelte Maximalwert ausgeben MW_Auswerten = AufeinanderfolgendMax End Function
Nebenbemerkung: deine Fehlerbeschreibung war etwas unglücklich, ich hab erst verstanden, was du überhaupt wolltest, als ich mir die Exceldatei runtergeladen, angeschaut und den Code angeguckt habe. Ich halte es für günstig bei der Fehlerbeschreibung immer mit zu erklären, was du eigentlich für eine Ausgabe erwartest und wie du da hinkommen wolltest. Z.B. gibt es nirgendwo eine Ausgabe in dfer Form 2x3 oder 4x2. Jetzt weiß ich, was du damit meintest aber vorher hatte ich nur Fragezeichen vor den Augen Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|