ich habe folgenden Code:
Sub TestNA2()
IsThisNA = Sheets("sheet1").Range("D:D").Select
'Sheets("sheet1").Range("E:E").Select
Range("E2").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
'ActiveCell.Value = "=IF(ISNA(D:D), ""Delete"","""")"
'ActiveCell.Value = IsThisNA
'MsgBox IsNA
End Sub
aber in dieser Zeile tritt ein Fehler auf: ActiveCell.Value = IfNa(D6, "Delete")
ich möchte, dass das Wort „löschen“ in Zelle E6 eingefügt wird, wenn D6 #NA ist.
kann mir jemand mit diesem Code helfen?
Antwort1
Der Fehler liegt in dieser Zeile:
ActiveCell.Value = IfNa(D6, "Delete")
Verwenden Sie stattdessen:
Set IsThisNA = Sheets("items-1").Range("D6")
If Application.WorksheetFunction.IsNA(IsThisNA.Value) Then
ActiveCell.Value = "Delete"
End If
oder, kürzer gesagt:
If Application.WorksheetFunction.IsNA(Sheets("items-1").Range("D6").Value) Then
ActiveCell.Value = "Delete"
End If
Antwort2
Sie sollten aus der Formel eine Zeichenfolge erstellen. Sie erhalten:
ActiveCell.Value = IfNa(D6, "Delete")
Aber das hier sollte sein:
ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"
Beachten Sie, dass ich den zweiten Parameter als IF
leere Zeichenfolge hinzugefügt habe. Möglicherweise möchten Sie dies aber ändern.
Hinweis: Sie könnenIFNA
seit Excel 2011 statt IF(ISNA(..),..)
.
Bearbeiten:bezogen aufdiese AntwortSie können es für die ganze Spalte erweitern:
Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
Sie können auch einen festen Bereich angeben, z. B. E1:E6
wie inHier.
Bearbeitung 2:Wenn Sie die ganze Spalte ausfüllen möchten, sollten Sie die Formel in Zeile 1 einfügen (z. B. E1
) und die automatische Ausfüllung über die ganze Spalte ausführen (z. B. E:E
). Wenn Sie weniger Zeilen möchten, sollten Sie dies im Ziel für die automatische Ausfüllung angeben, zum Beispiel:
Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault
Der automatisch ausgefüllte Bereich beginnt also an derselben Stelle wie die Formel ( E2
in diesem Beispiel).