Insira a data e hora atuais (função DATETIME) com um único atalho em uma célula no LibreOffice Calc

Insira a data e hora atuais (função DATETIME) com um único atalho em uma célula no LibreOffice Calc

Eu sei que existe o atalho CTRL+ ;para inserir a data atual e CTRL+ SHIFT+ ;para inserir a hora atual.

No entanto, tenho dois problemas com isso:

1) Eu gostaria de ter um atalho para ambos

2) Gostaria de poder usar um formato personalizado de data e hora ( YYYY-MM-DD HH:MM:SS)

O formato padrão do meu idioma é MM/DD/YY HH:MM:SS pm/am- eu façonãoquero mudar isso. Quero usar um formato personalizado especificamente para esse atalho, de preferência sem soluções que envolvam xdotoolsoftware de macro externo semelhante ou atalhos globais para todo o sistema.

As funções internas Tools -> Customize -> Keyboardnão parecem oferecer nenhuma ajuda.

(Por que não quero usar o xdotool; Uma solução diretamente no LibreOffice seria melhor.)


Encontrei o seguinte código de macro do OpenOfficeaqui, mas diz que só funciona com documentos do Writer. Como eu modificaria esta macro para inserir a DATA-HORA formatada na célula atualmente selecionada no 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

Responder1

Alterar o formato das células antes que o atalho seja a solução mais simples?Formatar célula

Formatar célula após atalho não funciona.

Maneira macro...

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

Responder2

Para Excel (testado para MS Excel 2010 para Windows): inserindo-o em uma célula sem macro ou software adicional a única solução é usar 3 atalhos após o outro:

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

Pelo menos isso lhe daráDD-MM-YYYY HH:MM

A partir daí você só precisa alterar o formato definido pelo usuário de acordo com sua escolha:YYYY-MM-DD HH:MM:SS

informação relacionada