Fügen Sie das aktuelle Datum und die aktuelle Uhrzeit (DATETIME-Funktion) mit einer einzelnen Tastenkombination in eine Zelle in LibreOffice Calc ein

638
confetti

Ich weiß, dass es die Abkürzung CTRL+ ;zum Einfügen des aktuellen Datums und CTRL+ SHIFT+ ;zum Einfügen der aktuellen Uhrzeit gibt.

Ich habe jedoch zwei Probleme damit:

1) Ich hätte gerne einen Shurtcut für beide

2) Ich möchte ein benutzerdefiniertes Datums- / Zeitformat verwenden ( YYYY-MM-DD HH:MM:SS).

Das Standardformat für meine Sprache ist MM/DD/YY HH:MM:SS pm/am- ich möchte das nicht ändern. Ich möchte ein benutzerdefiniertes Format speziell für diese Verknüpfung verwenden, vorzugsweise ohne Lösungen mit xdotoolähnlicher externer Makrosoftware oder globale systemweite Verknüpfungen.

Die Funktionen Tools -> Customize -> Keyboardscheinen keine Hilfe zu bieten.

( Warum ich xdotool nicht verwenden möchte ; eine Lösung direkt in LibreOffice wäre am besten.)


Ich habe hier den folgenden OpenOffice-Makrocode gefunden, der jedoch besagt, dass er nur mit Writer-Dokumenten funktioniert. Wie kann ich dieses Makro ändern, um das formatierte DATE-TIME in die aktuell ausgewählte Zelle in Calc einzufügen?

'Author: Andrew Pitonyak 'email: andrew@pitonyak.org  'uses: FindCreateNumberFormatStyle Sub InsertDateField Dim oDoc Dim oText Dim oVCurs Dim oTCurs Dim oDateTime Dim s$  oDoc = ThisComponent If oDoc.SupportsService("com.sun.star.text.TextDocument") Then oText = oDoc.Text oVCurs = oDoc.CurrentController.getViewCursor() oTCurs = oText.createTextCursorByRange(oVCurs.getStart()) oText.insertString(oTCurs, "Today is ", FALSE) ' Create the DateTime type. s = "com.sun.star.text.TextField.DateTime" ODateTime = oDoc.createInstance(s) oDateTime.IsFixed = TRUE oDateTime.NumberFormat = FindCreateNumberFormatStyle(_ "DD. MMMM YYYY", oDoc)  oText.insertTextContent(oTCurs,oDateTime,FALSE) oText.insertString(oTCurs," ",FALSE) Else MsgBox "Sorry, this macro requires a TextDocument" End If End Sub 
1
Da Sie diese Fragen stellen, fragen Sie nach LibreOffice, OpenOffice und Excel darf ich fragen, warum Sie "nur" LibreOffice im letzten Satz fragen? Albin vor 5 Jahren 0
Ich benutze LibreOffice selbst, aber alle drei sollten auf dieselbe Weise funktionieren. confetti vor 5 Jahren 0
Ah, ok, ich verstehe, dann sollten Sie Ihre Frage bearbeiten, denn auf diese Weise ist sie zu weit gefasst und der letzte Satz ist Ihre eigentliche Frage, aber sie ist nicht sehr prominent (zumindest soweit ich verstanden habe, wie ein " gute "Frage sollte gestellt werden) Albin vor 5 Jahren 0
Ich habe die Frage bearbeitet, das habe ich mit Punkt 2) gemeint. Ich denke, dies sollte möglich sein, wenn Sie ein Makro in LO verwenden und es dann der Verknüpfung zuweisen, aber ich weiß nichts über Makros in LO-Arbeit. confetti vor 5 Jahren 0
Es ist nicht so, wie es in Excel funktioniert? Albin vor 5 Jahren 0
Es sollte sein. Wissen Sie, wie man ein Makro für so etwas in Excel erstellt? Bisher hat jede Excel-Lösung, die ich in der Vergangenheit brauchte, auch bei libreoffice gearbeitet. Es unterstützt Makros in BASIC, BeanShell, JavaScript und Python. confetti vor 5 Jahren 0
In Excel verwende ich den VBA-Editor direkt (Alt + F11), aber Sie könnten einfach den Makrorecorder verwenden, "irgendetwas aufnehmen". Das Bearbeiten des neu erstellten Makros sollte den Makro-Editor öffnen. Das funktioniert in Excel, sollte auch in LibreOffice funktionieren. Albin vor 5 Jahren 0
Das brachte mich in die richtige Richtung. Ich habe ein Makro gefunden, das macht, was ich will, aber es funktioniert nur mit einem Writer-Dokument. Ich habe meine Frage bearbeitet und die Informationen hinzugefügt. Wissen Sie, wie Sie dieses Skript so bearbeiten, dass es in calc / excel funktioniert? confetti vor 5 Jahren 0
@confetti, die verschiedenen Office-Suiten sind im Allgemeinen ähnlich. Sie lesen und speichern jede andere Datei innerhalb eines angemessenen Rahmens, und die meisten gebräuchlichen Funktionen haben auf Plattformen mindestens ein Äquivalent. Es gibt jedoch viele Unterschiede, wie die Dinge tatsächlich funktionieren, und die Benutzeroberflächen sind unterschiedlich. Es verursacht endlose Verwirrung für Benutzer, wenn Probleme nicht repliziert werden können oder Lösungen nicht wie geschrieben funktionieren. Bitte kennzeichnen Sie die von Ihnen verwendete App. Vielen Dank. fixer1234 vor 5 Jahren 0
@confetti schau dir MShaffers Antwort an, er hat das Makro für dich geschrieben ... was für eine nette Person :) Albin vor 5 Jahren 0

2 Antworten auf die Frage

1
MShaffer

Ändern Sie das Format der Zellen, bevor die Verknüpfung die einfachste Lösung ist.Zelle formatieren

Die Zelle nach der Verknüpfung formatieren funktioniert nicht.

Makro-Weg ...

Sub Main  Dim Doc As Object Dim Sheet As Object Dim Cell As Object Dim NumberFormats As Object Dim NumberFormatString As String Dim NumberFormatId As Long Dim LocalSettings As New com.sun.star.lang.Locale  Doc = ThisComponent Sheet = Doc.Sheets(0) Cell = Doc.getCurrentSelection Column = Cell.CellAddress.Column Row = Cell.CellAddress.Row  Cell.Value = Now()  LocalSettings.Language = "en" LocalSettings.Country = "us"  NumberFormats = Doc.NumberFormats NumberFormatString = "YYYY-MM-DD HH:MM:SS"  NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True) If NumberFormatId = -1 Then NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings) End If  MsgBox NumberFormatId Cell.NumberFormat = NumberFormatId  End Sub 
mit Strg + Umschalt +; gibt mir nur das Datum "um Mitternacht", wenn ich neu formatiere? machst du es mit libre office oder excel? für PC oder Mac? welche Version verwendest du? Albin vor 5 Jahren 0
Auch für mich funktioniert das Formatieren der Zelle vor dem Einfügen der Zeitverkürzung nicht! Albin vor 5 Jahren 0
LibreOffice Version: 5.1.6.2 / Ubuntu 16.04 ... Ich erhalte das gleiche Ergebnis, wenn ich das Format nach der Verwendung der Tastenkombination verwende ... Vorformatierung hat die Zeit auf Strg + nicht gekürzt; oder das Datum auf Schritt + Umschalttaste +; MShaffer vor 5 Jahren 0
Ich kann das beschriebene Verhalten von @Albin bestätigen. Das funktioniert bei mir nicht. Ich bin bei LibreOffice 6. Außerdem bekomme ich "###", wenn ich neu formatiere. confetti vor 5 Jahren 0
Es tut mir leid, anscheinend erschien das "###", weil die Zelle nicht breit genug war. Ihr Ansatz hat für mich funktioniert. Ich hoffe auf eine Antwort, bei der ich nicht jede Zelle vorher formatieren muss. confetti vor 5 Jahren 0
Hervorragend. Ich danke dir sehr. Genau das, was ich brauchte. Ich habe die `MsgBox` entfernt und diese auf eine Verknüpfung gesetzt und sie macht genau das, was ich brauche. confetti vor 5 Jahren 0
0
Albin

Für Excel (getestet für MS Excel 2010 für Windows): Beim Einfügen in eine Zelle ohne Makro oder zusätzliche Software besteht die einzige Lösung darin, 3 Verknüpfungen nach der anderen zu verwenden:

  • CTRL + ;
  • space
  • CTRL+ SHIFT+;

Zumindest wird dir das geben DD-MM-YYYY HH:MM

Von dort müssen Sie lediglich das benutzerdefinierte Format nach Belieben ändern: YYYY-MM-DD HH:MM:SS

Dies würde das voreingestellte Datums- und Zeitformat verwenden, in meinem Fall würde dies "08/02/18 08:29:44 PM" sein. Ich brauche ein benutzerdefiniertes Format, ohne den globalen Standard zu ändern. confetti vor 5 Jahren 0
@confetti ah, ok, Sie sollten diese Informationen zu Ihrer Frage hinzufügen. Albin vor 5 Jahren 0
Ich dachte, ich wäre klar genug mit dem, was ich bereits gesagt habe, aber ich werde es bearbeiten, um klarer zu sein. confetti vor 5 Jahren 0
Sie können eine Tastenkombination programmieren, um alle Tastatureingaben mit einer Tastenkombination einzugeben. fixer1234 vor 5 Jahren 0