In meinem Szenario habe ich vier Spalten, Spalten A-D. Wenn Spalte B irgendeinen Wert enthält, muss die übereinstimmende Zeile in Spalte A so aktualisiert werden, dass sie einen vorbestimmten Wert enthält. Das gleiche Makro wird für die Spalten C und D angewendet I haben Code jetzt, dass dieses Ergebnis erreicht:Excel VBA - Aktualisiere Spalte A mit einem Wert, wenn Spalte B einen Wert enthält. Wenn Spalte B keine Werte enthält, führen Sie das Makro nicht
Sub Update_Column_Based_On_Column_Value1()
On Error Resume Next
Dim ws As Worksheet
Dim lRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
lRow = .Range("B" & .Rows.Count).End(xlUp).Row
.Range("A1:A" & lRow).SpecialCells(xlCellTypeBlanks).Formula = "=If(B1<>"""",""PREDETERMINED VALUE"","""")"
.Range("A1:A" & lRow).Value = .Range("A1:A" & lRow).Value
End With
End Sub
Wenn Spalte B einen Wert enthält, wird das Makro „vorbestimmten Wert“ in der entsprechenden Zelle in der Spalte A. schreiben
Ein Problem tritt auf, wenn eine Spalte überhaupt keine Werte enthält. Was passiert, ist, dass das Makro meinen neuen Wert in fast alle leeren Zellen im gesamten Datensatz schreibt.
Vielen Dank im Voraus für Ihre Zeit! Ich entschuldige mich, wenn meine Frage noobish ist, ich bin immer noch sehr neu in VBA.
ich nicht ganz das Problem verstehen, aber ich glaube, Sie müssen diese Zeilen ändern, wie Sie es auf den Werten in A statt B 'lRow = .Range („A“& .Rows basieren sollen. Count) .End (xlUp) .Row' – SJR
Ein anderes Problem ist, dass sich die erste Instanz Ihrer Formel auf B1 bezieht, aber das Leerzeichen möglicherweise nicht in Zeile 1 ist. – SJR
Hallo, @SJR Es tut mir leid, wenn meine Anforderungen nicht waren Ich habe klar genug gesagt, dass ich Screenshots von dem liefern kann, was ich erreichen möchte. Ihre Änderung an dem Code war nicht das, was ich gesucht habe. Als ich es ausführte, war die Codeaktualisierungsspalte A, obwohl Spalte B leer war. – UserX