2016-12-12 4 views
2

ich derzeit versuche folgendes zu erreichen:Excel VBA - Datum, bis zu letzten Zeile

Spalte A hat in ihr enthaltenen Daten (zum Beispiel, Orange, Apfel, Mango) und Spalte B leer ist. Ich möchte eine Box implementieren, die nach Eingabe eines Datums automatisch in einem Bereich gefüllt wird.

Hier ist mein Code so weit:

Public Sub DATERES() 
Dim strUserResponse As String 

strUserResponse = InputBox("Enter Date") 

ActiveSheet.Range("B1:B100").Value = strUserResponse 

End Sub 

So weit so gut, aber mein Problem ist, dass die Daten in einer Eins von 1 bis 500-600 manchmal variieren können. Als solches möchte ich es so modifizieren, dass es zuerst Spalte A überprüft und nur das Datum in Spalte B bis zur letzten Zeile eingibt, anstatt ihm einen viel größeren Bereich zu geben (wie B1: B1000).

Jede Hilfe und Beratung ist willkommen.

Einen schönen Tag noch!

Antwort

1
Public Sub DATERES() 
Dim strUserResponse As String 
dim lastrow as long 

strUserResponse = InputBox("Enter Date") 

lastrow = Cells(Rows.Count,1).end(xlup).row 'the 1 will get the last row for column A. Change if needed 


ActiveSheet.Range("B1:B"& lastrow).Value = strUserResponse 

End Sub 

Es ist sicherer, verwenden verwiesen Sheets und Range s statt ActiveSheet.

' modify "Sheet1" to your sheet's name 
With Sheets("Sheet1") 

    lastrow = .Cells(.Rows.count, 1).End(xlUp).Row ' the 1 will get the last row for column A. Change if needed 

    .Range("B1:B" & lastrow).Value = strUserResponse 
End With 
+2

Ihre LastRow in Spalte B sucht, die leer ist (Post lesen), Sie müssen es mit Daten füllen (in Spalte A). Sie müssen also nach der letzten Zeile in Spalte A suchen. –

+0

Hoppla. Ich habe meinen Kaffee noch nicht getrunken. Habe das falsch gelesen. Fest! – Moacir

+1

Vielen Dank für die schnelle Antwort !! :) Funktioniert super! – llorcs

1

FYI, wenn Sie Ihre ImputBox wollen den Benutzer zu zwingen, einen Wert in einem Date Format einzugeben, verwenden Sie die folgenden Zeilen:

Dim strUserResponse As Date 

strUserResponse = Application.InputBox("Enter Date", , FormatDateTime(Date, vbShortDate), Type:=1) 
Verwandte Themen