Macro no Excel para adicionar a data no formato ISO-8601

0

Por algum motivo, o Excel me força a usar minha região para rodapés quando insiro a data. No entanto, ele também não é atualizado automaticamente quando a planilha é aberta. Sem a formatação, essa é uma questão bastante trivial, no entanto, a formatação do texto é problemática e não tenho certeza de como corrigir isso com todas as citações que parecem ser obrigatórias.

Private Sub Workbook_Open()
    'you need to get the font to size 6, use calibri, use a light grey #DBDBDB perhaps and use ISO-8601
    ActiveSheet.PageSetup.RightFooter = "&""Calibri""&6" & DBDBDB & Format(Now, "yyyy-mm-dd")
End Sub

Também agora parece haver um número no plano de fundo da planilha.

    
por Jon Weinraub 05.03.2015 / 16:32

1 resposta

1

Algumas tentativas e fracassos me levam a esse sub , do qual você pode simplesmente colar os bits relevantes no seu. Como você pode ver, usei Chr(34) em vez de aspas duplas para construir a string, porque acho que isso aumenta a legibilidade, que é uma preferência pessoal. Além disso, você notará que eu armazenei o string em uma variável, o que não é estritamente necessário, mas que ajuda quando, por exemplo, quero usá-lo em uma mensagem de depuração, como faço no meu sub . Eu acho que em casos como este, ajuda a ser capaz de ver como o string se parece, pois pode ser meio difícil manter o controle de todas as aspas, como você já observou.

Não tenho certeza absoluta de onde você errou na sua própria construção da string, embora pareça que você não tenha algumaspas ao redor da área onde você define a cor da fonte, bem como o &K que precisa preceder seu hexadecimal valor.

Para referência, usei esta página do MSDN para ajudar a encontrar o códigos de formatação para cabeçalhos e rodapés.

Private Sub test()
  'you need to get the font to size 6, use calibri, use a light grey #DBDBDB perhaps and use ISO-8601
  Dim s As String
  s = "&" & Chr(34) & "Calibri" & Chr(34) & " &6 &KDBDBDB " & Format(Now, "yyyy-mm-dd")
  ActiveSheet.PageSetup.RightFooter = s
  Debug.Print s
End Sub
    
por 05.03.2015 / 17:35