Also habe ich ein Problem, wo ich feststecke und kann keinen Weg finden, es zu lösen. Mein Code ist im Voraus erklärt, aber das Hauptproblem ist, dass ich eine glättende Exponentialfunktion mit ATPVBAEN nach Abschnitten anwenden muss, da Daten nicht immer vorhanden sind, obwohl meine x-Achse für jede Messung progressiv sein muss und einige übersprungen werden können. wie unten angezeigt: 0 34,5 2 40,6 4 41,5 10 30,4 12 32,9 Da ich in einem Satz von Daten exponentielle Glättung verwenden muß, so programmatisch zugegriffen I in der folgenden Form des ATPVBAEN Add- in Excel zur Verfügung gestellt. Vorbereitung meiner Daten:Wie kann man ATPVBAEN in einem Datensatz mit übersprungenen Daten innerhalb derselben Spalte anwenden?
Dim plan As Worksheet
Set plan = ThisWorkbook.Sheets("PLANILLA")
Dim plan2 As Worksheet
Set plan2 = ThisWorkbook.Sheets("FILTER")
Dim data As Worksheet
Set data = ThisWorkbook.Sheets("DATA")
Erste Versetzungen und Werte Bewältigungs von Originaldaten extrahiert werden, bevor er exponentielle Glättung verwendet wird.
k = data.Range("C2", data.Range("C2").End(xlDown)).Rows.Count 'Find last index x axis column
p = k + 15 'Set offset
plan2.Range("K16", "K" & p).Value = data.Range("E2", "E" & k + 1).Value 'Copy values
plan2.Range("L16", "L" & p).Value = data.Range("E2", "E" & k + 1).Value
plan2.Range("M16", "M" & p).Value = data.Range("F2", "F" & k + 1).Value
Nun betreiben ich die Funktion, die mir die Daten glätten zu tun erlaubt, Daten in der Zeile L (destination) Anordnen, um die Daten aus der Spalte D unter Verwendung von (Ursprung). So endlich habe ich die folgenden:
Application.Run "ATPVBAEN.XLAM!Expon", plan2.Range("L16", "L" & p), plan2.Range("D16", "D" & p), smoothVal, False, False, False
Hier ist, wo ich einen Weg brauche, in dem ich die Funktion in den Abschnitten anwenden kann, weil ich Daten, die einige Zellen überspringen, so dass sie leer. Das Problem ist, dass Excel leere Daten als 0 annimmt und meine Messungen auf eine sehr schlechte Weise beeinflusst werden. Gibt es eine Arbeit um die ATPVBAEN durch Teile wie in einer for-Schleife anzuwenden (Setzen Sie bei jeder Schleife den Anfang und das Ende mit den Variablen p und k wie oben)? Wie kann ich erkennen, wo der Anfang und das Ende jeder Teilmenge von Daten innerhalb der Spalte liegt? Da die Zeile:
(…, data.Range("C2").End(xlDown)).Rows.Count
scheint keine effektive Lösung zu sein.
Mein Code funktioniert sehr, wenn ich die volle Länge der Spalte mit einem fortlaufenden Datensatz verwende, aber ich möchte es ermöglichen, mit Datensätzen zu arbeiten, die Daten übersprungen haben. Vielen Dank !!
Die Daten, die früher angezeigt wurden, zeigen folgendes: x Achse 0-12 Messungen die zweite Reihe. Das tut mir leid. – newToStackOverflow
Ist es möglich, 'ATPVBAEN.XLAM! Expon 'auszuführen, indem Sie ein Array anstelle eines Bereichs übergeben? Dann könnten Sie den Bereich zuerst in ein Array übergeben, die Größe des Arrays ändern und alle Nullen entfernen und diese Arrays dann an das Makro weiterleiten, das Sie haben. Übrigens, willst du nur alle Nullen aus der Spalte D oder aus der Spalte L entfernen oder wenn beide beide Null sind? – Ralph
Ja, ich könnte versuchen, das Makro stattdessen mit einem Array aufzurufen. Nullen können in leere Zellen eingefügt werden, und ignorieren Sie sie dann, wenn Sie das Array aus der Spalte nehmen ... Das wäre ein guter Ansatz, ich werde versuchen, es zu kodieren und ich werde Sie das Ergebnis wissen lassen – newToStackOverflow