Ich versuche, eine dynamische Tabelle (Vorlage) zu erstellen, die zum häufigen Abrufen von Daten verwendet wird. In diesem Datensatz muss ich die abgerufenen Daten mit Steigungs-/Schnittpunktwerten korrigieren. Jedoch würde Ich möchte keine Berechnungen durchgeführt haben, wenn die Daten entweder 0 oder Null sind. Dies könnte auch durch einen Sollwert in einer anderen Spalte referrenced werden, lässt Sheet1 Spalte H sagen, mit einem Wert von 10.VBA durchläuft Spalten und wendet eine Formel an, wenn sie übereinstimmt (oder nicht übereinstimmt)
Die K-Zellen in Sheet „Stichworte“ die Steigung & Abschnittswerte enthalten, Spalte G von " Sheet1 "enthält Daten von einem Server abgerufen. Der Einfachheit halber lassen wir sie alle 10.0 als Wert haben. Die Daten in Spalte G können jedoch aufgrund von Prozessbedingungen variieren.
Derzeit durch die Spalten mit Daten Ich werde und wenn es passt, wird es eine Multiplikation oder zusätzlich zu den ursprünglichen Werten in einem bestimmten Bereich als solche gelten:
' Declare vars
Dim FirstRow As Integer
Dim LastRow As Integer
Dim Number As Integer
Dim fndStr As String
Dim sht As Worksheet
' Init vars
Set sht = ThisWorkbook.Worksheets("Sheet1")
LineText = ""
Number = 0
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
' Loop through colums till fndStr is found
Do While Not fndStr = "lastWord"
fndStr = Sheets("Sheet1").Range("A1").Offset(0, Number)
Select Case fndStr
Case Var1:
Sheets("Tags").Range("K7").Copy
Sheets("Sheet1").Range("G" & FirstRow & ":G" & LastRow).PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
Sheets("Tags").Range("K6").Copy
Sheets("Sheet1").Range("G" & FirstRow & ":G" & LastRow).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
Number = Number + 1
Case "lastWord": Exit Do
Case Else: Number = Number + 1
End Select
Loop
einige zusätzliche Informationen, wenn neue Daten Wird gezogen, werden die vorherigen oder bereits vorhandenen Daten nicht neu berechnet, für diese sind die FirstRow- und LastRow-Variablen gemeint, an die Daten angehängt werden.
Vielen Dank im Voraus!
Sie scheinen ein 'Select Case' zu verpassen? Abgesehen davon, was genau ist deine Frage? Wie überprüft man, ob ein Zelleninhalt "0" oder "null" ist? – arcadeprecinct
Vielen Dank, dass Sie die fehlende SELECT-Anweisung bemerkt haben. Meine Frage ist, wenn ich durch die Daten in dieser Spalte gehe, wie kann ich eine Berechnung vermeiden, wenn eine Zelle oder ein Bereich von Zellen "0" oder "Null" ist, ohne (signifikante) Verarbeitungsgeschwindigkeit zu verlieren? – Vanadium
Für eine einzelne Zelle verwenden Sie einfach 'If thiscell.Value <> 0 Und thatcell.Value <>" Null "Then ...'. Für einen Bereich würde ich "Null" 'vorher durch 0 ersetzen und' Application.WorksheetFunction.Sum' verwenden (prüfen ob die Summe> 0 ist) – arcadeprecinct