2016-06-14 5 views
2

Ich habe drei Spalten. Spalte A zeigt jedes Datum vom 1.1.2016 bis zum Ende des Jahres. Spalte B ist derzeit leer. Spalte C zeigt ein manuell eingegebenes Datum (das kann und wird häufig geändert)Füllen einer Spalte in Excel 2013 mit VBA basierend auf mehreren Variablen

Ich möchte eine Sub (über eine Schaltfläche) haben, die, wenn sie gedrückt wird, Spalte B mit einem "Ja" oder "Nein" Wert füllt abhängig davon, ob der Wert in derselben Zeile der Spalte A größer als der in Spalte C angezeigte Wert ist.

Wenn beispielsweise A1 (1/1/2016) kleiner als C1 (1/4/2016) ist, B1 soll zeigen, ein "Nein". Die A5 (2016.01.05) größer ist als C1 und sollte ein "Ja" an.

A   B   C 
1/1/2016     1/4/2016 
1/2/2016 
1/3/2016 
1/4/2016 
1/5/2016 
1/6/2016 

werden sollte

A   B   C 
1/1/2016  No  1/4/2016 
1/2/2016  No 
1/3/2016  No 
1/4/2016  No 
1/5/2016  Yes 
1/6/2016  Yes 

Ich bin eine neuere Version auf VBA und haben keine Fragen direkt im Zusammenhang mit diesem zu sehen, so dass alle einfachen VBA Vorschläge zu lernen, wäre toll.

Antwort

3

Normalerweise Fragen ohne den Versuch nicht angebracht wäre, eine Antwort zu codieren, aber dies leicht gefallen und hoffentlich werden Sie genug sein sollte, geben, so dass Sie auf diese Art von Problemen in der Zukunft beginnen können . Versuchen Sie, Ihren VBA-Editor

'Col A = Col 1, Col B = Col 2, etc. 
'Cells(row num, col num) 
finalRow = Cells(1000000,1).end(xlup).row 
for i = 1 to finalRow 
    if cells(i,1) < cells(i,3) then 
     cells(i,2) = "No" 
    else 
     cells(i,2) = "Yes" 
    end if 
next i 

hinzuzufügen.

+0

Das ist perfekt! Ich habe es in mein Skript integriert und es ermöglicht mir, die gewünschten Ergebnisse zu erzielen. Ich entschuldige mich, weil ich neu hier bin, also lerne ich immer noch alle Postregeln! –

+0

Beste Antwort, um es tatsächlich in VBA zu tun. Die einzige Sache, die ich ändern würde, ist Zellen (1000000,1) zu Zellen (Zeilen.Count, 1) –

+0

Groß. Das erinnert mich ein wenig an mein erstes vba-Projekt. Alles Gute in Ihrer zukünftigen Codierung. –

0

Sie möchten vielleicht nur eine normale Zellfunktion erstellen. Geben Sie in B1

=IF(A1>C1,"Yes","No") 

Kopie, die die Zellen in Spalte B alle funktionieren, und Sie haben ein Ergebnis

0

Verwenden Sie die folgenden in B2,

=CHOOSE((A2>INDEX(C:C, MATCH(1E+99,C$1:C2)))+1, "No", "Yes") 

Füllen Sie unten nach Bedarf.

enter image description here

Verwandte Themen