%20mit%20nur%20einem%20Tastenk%C3%BCrzel%20in%20eine%20Zelle%20in%20LibreOffice%20Calc.png)
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 -> Keyboard
scheinen 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 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