Einfügen des aktuellen Datums und der Uhrzeit (DATETIME-Funktion) mit nur einem Tastenkürzel in eine Zelle in LibreOffice Calc

Einfügen des aktuellen Datums und der Uhrzeit (DATETIME-Funktion) mit nur einem Tastenkürzel in eine Zelle in LibreOffice Calc

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

Allerdings habe ich damit zwei Probleme:

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

2) Ich möchte ein benutzerdefiniertes Datums-/Uhrzeitformat verwenden können ( YYYY-MM-DD HH:MM:SS)

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

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

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


Ich habe den folgenden OpenOffice-Makrocode gefundenHier, aber es heißt, dass es nur mit Writer-Dokumenten funktioniert. Wie kann ich dieses Makro ändern, um das formatierte DATUM/UHRZEIT in die aktuell ausgewählte Zelle in Calc einzufügen?

'Author: Andrew Pitonyak
'email:   [email protected] 
'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

Antwort1

Das Format der Zellen vor der Verknüpfung zu ändern ist die einfachste Lösung?Zelle formatieren

Zelle nach Tastenkombination formatieren funktioniert nicht.

Makroweg ...

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

Antwort2

Für Excel (getestet für MS Excel 2010 für Windows): Um es in eine Zelle ohne Makro oder zusätzliche Software einzufügen, besteht die einzige Lösung darin, 3 Tastenkombinationen nacheinander zu verwenden:

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

Zumindest gibt Ihnen dasDD-MM-YYYY HH:MM

Von dort aus müssen Sie nur noch das benutzerdefinierte Format nach Ihren Wünschen ändern:YYYY-MM-DD HH:MM:SS

verwandte Informationen