我知道有CTRL+;快捷键可以插入当前日期,有CTRL+ SHIFT+快捷键;可以插入当前时间。
然而我对此有两个疑问:
1)我想要一个适合两个人的
2)我希望能够使用自定义日期时间格式(YYYY-MM-DD HH:MM:SS
)
我的语言默认格式是MM/DD/YY HH:MM:SS pm/am
- 我愿意不是想要改变这一点。我想为该快捷方式使用专门的自定义格式,最好不要使用涉及xdotool
或类似外部宏软件或全局系统范围快捷方式的解决方案。
其中的功能Tools -> Customize -> Keyboard
似乎没有提供任何帮助。
(为什么我不想使用 xdotool;直接在 LibreOffice 中解决是最好的。)
我找到了以下 OpenOffice 宏代码这里,但它说它只适用于 Writer 文档。我该如何修改此宏以将格式化的 DATE-TIME 插入到 Calc 中当前选定的单元格中?
'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
答案1
快捷方式后的单元格格式不起作用。
宏观方式...
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
答案2
对于 Excel(针对 Windows 版 MS Excel 2010 测试):将其插入到一个单元格中,无需宏或其他软件,唯一的解决方案是连续使用 3 个快捷方式:
- CTRL+;
- space
- CTRL+ SHIFT+;
至少这会给你DD-MM-YYYY HH:MM
从那里你只需要将用户定义的格式更改为你的选择:YYYY-MM-DD HH:MM:SS