Ich habe versucht, die Formel = Today() auf der Tabelle meiner Datenbank zu verwenden, und wenn ich am nächsten Tag eine neue Zeile einfügen, die ganzen Daten sogar die vorherige Daten wurden durch das Datum des aktuellen Tages ersetzt. Gibt es trotzdem etwas zu verhindern? Oder ist es möglich, mit worksweat_change die Datumsspalte zu aktualisieren, wenn eine neue Zeile eingefügt wurde und die Datumsspalte der neuen Rolle das aktuelle Datum hat und am nächsten Tag, wenn ich sie erneut aktualisiere, wird sie nicht ersetzt? Bitte geben Sie dankVBA Worksheet_change Wenn eine neue Zeile hinzugefügt wurde, fügen Sie das heutige Datum ein
Antwort
ZQ7 genannt werden, diese Antwort ist, wie ich in den Kommentaren erwähnt, findet die = TODAY()
Formel Zelle und Paste Es sind Werte für die aktuelle Zelle. Dann können Sie Ihre neue Zeile und führen Sie den Rest des Codes hinzufügen ..
Option Explicit
Sub prevenddate()
Dim mert As Range
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Cells.Find(What:="=TODAY()", After:= _
ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub
Und hier sind die gewünschte Antwort!
Dieser Code unten, zunächst sucht nach =TODAY()
Formel in Arbeitsblatt, und wenn das Ergebnis ist das heutige Datum es nichts tun. Aber wenn es anders ist dann das heutige Datum dann tut es einfach Paste Values
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook
Dim ws As Worksheet
Dim myRw As Long, myCl As Long
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
On Error GoTo 10
myRw = ActiveCell.Row
myCl = ActiveCell.Column
ws.Cells.Find(What:="=TODAY()", After:= _
ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Activate
If ActiveCell.Value <> Date Then
Cells.Find(What:="=TODAY()", After:= _
ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
Else
End If
10
ws.Cells(myRw, myCl).Offset(-1, 0).Activate
Application.CutCopyMode = False
End Sub
Aber ist es möglich, es in worksheet_change zu ändern, anstatt das Makro manuell zu aktivieren? – ZQ7
Ah, jetzt habe ich verstanden, was du meinst. Aber wann (nach welcher Änderung) möchten Sie, dass das Makro (in welchem Zustand) ausgeführt wird? – Mertinc
Nun, ich wünschte mir ein automatisierteres. Aber es ist in Ordnung, ich denke, Ihr Makro funktioniert genauso gut. Vielen Dank Alter! – ZQ7
bitte versuchen Sie diesen Code
Public Function MyToday() As Date
MyToday = CDate(Now() \ 1)
End Function
und sollte wie
MyToday()
Sie können denselben Effekt wie 'MyToday()' erreichen, indem Sie nur 'Date()' (die VBA-Funktion, die das heutige Datum zurückgibt) sagen, ohne dass eine zusätzliche Funktion benötigt wird. – YowE3K
den folgenden Code auf Blatt Modul.
Der Code fügt ein Datum in Spalte A ein, wenn Sie etwas in Spalte B eingeben, beginnend mit Zeile2.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
On Error GoTo SkipError
If Target.Column = 2 And Target.Row > 1 Then
Application.EnableEvents = False
r = Target.Row
If Target <> "" Then
If Cells(r, "A") = "" Then
Cells(r, "A") = Date
End If
Else
Cells(r, "A") = ""
End If
End If
SkipError:
Application.EnableEvents = True
End Sub
Von Determine whether user is adding or deleting rows von breetdj schreibe ich diesen Code. Versuchen Sie es in dem Blatt Modul zu setzen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Static LR As Long
Dim Table as range
Set Table = Me.ListObjects(1).DataBodyRange
If LR = 0 Then
LR = Table.Rows.Count
Exit Sub
End If
If Table.Rows.Count < LR Or Table.Cells(Table.Rows.Count, 1) <> "" Then Exit Sub
Table.Cells(Table.Rows.Count, 1) = Date
LR = LR + 1
End Sub
Change „Listobjects (1)“ mit dem Namen der Tabelle, und ändern Sie die Spaltennummer mit der gewünschten Spalte
- 1. vba, das heutige Datum, jetzt Funktion, Makrovariablen
- 2. fügen Sie eine Formel hinzu, wenn eine Zeile hinzugefügt wird vba
- 3. Überprüfen Sie ein Datum einer Datei gegen das heutige Datum
- 4. füge das heutige Datum in JSON ein
- 5. Suchen Sie eine Datei für das heutige Datum in Python
- 6. Fügen Sie eine neue Zeile in die Bash-Eingabeaufforderung ein
- 7. Zugriff - Benutze Datum, wenn verfügbar, sonst benutze das heutige Datum
- 8. Wie kann der Benutzer nicht zur Datenbank hinzugefügt werden, wenn das Datum später ist als das heutige Datum?
- 9. xlsxwriter: So fügen Sie eine neue Zeile ein
- 10. Wie kann ich eine ganze Zeile in ein anderes Blatt kopieren, wenn diese Zeile das heutige Datum enthält?
- 11. VBA - Wählen Sie eine neue Zeile
- 12. Google Scripts - Fügen Sie das aktuelle Datum in eine bestimmte Zelle ein, aber ignorieren Sie das Aktualisieren der Zelle erneut, wenn sie übersteuert wurde
- 13. Excel VBA Worksheet_Change
- 14. Fügen Sie AdSense-Code ein, wenn das Wort gefunden wurde
- 15. Fügen Sie eine neue Kontaktabsicht ein
- 16. Fügen Sie eine neue Linienbaugruppe ein 8086
- 17. Erstellen Sie neue Zeile programmgesteuert und fügen Sie eine neue Zeile danach in DataGridView
- 18. Django dateutil analysiert das Datum auf das heutige Datum
- 19. Excel/VBA Worksheet_Change wiederholt sich
- 20. MySQL: herausfinden, welches Datum eine Zeile zu einer Tabelle hinzugefügt wurde?
- 21. So fügen Sie eine Legende hinzu und machen Linien zufällige Farbe, wenn eine neue Zeile zu D3 hinzugefügt wird. JS
- 22. Aktualisieren Sie ältere Datensätze, wenn eine neue Spalte hinzugefügt wird
- 23. MySQL-Abfrage für das heutige Datum nicht
- 24. Das heutige Datum im Kontaktformular 7 Datumsauswahl
- 25. Fügen Sie eine neue Zeile in shiny's modalDialog
- 26. Validieren Sie p: Kalenderwert nicht größer als das heutige Datum
- 27. fügen Sie eine neue Zeile zu numpy mit Echtzeit lesen
- 28. Fügen Sie eine neue Zeile in ein Google-Blatt ein und kopieren Sie eine vorformatierte Zeile darin
- 29. Das heutige Datum -30 Tage in JavaScript
- 30. erhalten Sie das heutige Datum und die Uhrzeit als Zeichenfolge
Jedes Mal, wenn Ihr Blatt aktualisiert wird, jede Einzelner Wert wird auf das aktuelle Datum gesetzt, da jede Zeile aktualisiert wird. Sie sollten versuchen, dafür ein Makro zu schreiben, das das gesamte Blatt aktualisiert, aber nur den aktuell hinzugefügten Wert ändert. – Thomas
Noch ein Vorschlag, bevor Sie die neue Zeile am nächsten Tag hinzufügen, warum Sie nicht den Wert des gestrigen Datums einfügen? ** (Einfach Werte kopieren und einfügen) ** Solange dieses Datum nicht geändert werden soll, sollten Sie es aus der Formel '= Today()' retten, um zu verhindern, dass es sich ändert. – Mertinc
Sie erwarten keine Antwort wie drücken ** STRG +; ** -Taste, bist du? –