2017-05-20 3 views
0

Der unten stehende VBA-Code muss prüfen, ob das Datum in Spalte B zwischen dem 1. April 2017 und dem 28. April 2017 liegt, und dann in die Spalte A "April 2017" eingeben. Die Zeile "Formula =" erhält jedoch einen Syntaxfehler. Könnten Sie bitte helfenBedingungsanweisung Basis am Datum

With Sheets("xxxx") 
With .Range("B2", .Cells(.Rows.Count, "B").End(xlUp)) 
    .Offset(, 1).Formula = "=IF((AND(B2>=DATE(2017,4,1),B2<=DATE 
    (2017,4,28))),"Apr'17","")" 
    .Offset(, 1).Value = .Offset(, 1).Value 
End With 
End With 
+1

Escape the '" 's, der Teil der Formel und weniger Klammern sind. – pnuts

+2

Die Änderung, die Sie in Ihrem Kommentar geschrieben wird ** NICHT ** was von @pnuts empfohlen wurde. Aber warum nicht nur das Kontroll direkt in VBA? –

Antwort

0

Bitte versuchen Sie diesen Code.

With ActiveSheet 
    With .Range("B2", .Cells(.Rows.Count, "B").End(xlUp)).Offset(0, 1) 
     .Formula = "=IF(AND(B2>DATE(2017,3,31), B2<DATE(2017,5,1)),B2,"""")" 
     .NumberFormat = "mmm yy" 
    End With 
End With