Pergunta

Estou automatizar o Excel, usando o sistema de macro como um guia para o que devo fazer por meio da automação. Quando eu formatar uma coluna como uma data, a macro gerou um NumberFormat para a coluna a ser:

[$-409]m/d/yy h:mm AM/PM;@

eu estou tentando decifrar o que isso realmente significa. i reunir de googling , que os valores em colchetes são um "condição" , e que se a condição:

$-409

for atendida, então ele vai usar o NumberFormat

m/d/yy h:mm AM/PM

Se não, ele usa o NumberFormat

@

As referências Acho dizer que o formato de número "@" é um texto do espaço reservado

Então, minhas perguntas são:

  1. O que é a condicional $ - 409 testando? Trata-se de comparar algo contra -409 (ou seja, negativo quatrocentos e nove ), e em caso afirmativo, qual é a cifrão está comparando contra?

  2. Se o condicional falhar, e recorre ao texto do espaço reservado "arroba", o que ele mostra como?

Foi útil?

Solução

Para esclarecer o que outros disseram:

O [$ -409] é um locale código, dado em hexadecimal. Prefixando uma data com um determinado código de localidade determina o que é mostrado quando você usa os vários códigos de formato de data e hora. Por exemplo, utilizando a data

28 de novembro de 1973 11:28:13

como um exemplo para a tabela a seguir:

Format Code  409 (English United States)  804 (Chinese PRC)
===========  ===========================  =================
m            11                           11
mm           11                           11
mmm          Nov                          十一月
mmmm         November                     十一月
d            27                           27
dd           27                           27
ddd          Mon                          二
dddd         Monday                       星期二
y            73                           73
yy           73                           73
yyy          1973                         1973
yyyy         1973                         1973
AM/PM        AM                           上午

Assim, no final do mesmo código de formato com dois identificadores de localidade diferentes, dá resultados diferentes:

[$-409]mmmm dd yyyy  h:mm AM/PM
November 27 1973  11:28 AM


[$-804]mmmm dd yyyy  h:mm AM/PM
十一月 27 1973  11:28 上午

Uma vez que encontrar uma lista de códigos de localidade é como puxar os dentes, aqui estão algumas referências:

Idioma Identificador Constantes e Cordas ( fonte primária, archive.is )

códigos do Windows Locale ordenadas por Locale (< a href = "https://archive.fo/Y1mxi" rel = "nofollow noreferrer"> archive.is )

códigos do Windows Locale ordenadas por Locale < em> ( archive.org , archive.is )

Outras dicas

Naaf e Grant Wagner ter ordenadamente respondeu à pergunta sobre o seu $-409, por isso vou apenas preencher a parte que falta:

O '@' após a vírgula diz Excel como tratar os dados se você introduzir uma cadeia em vez de uma data válida. O @ significa simplesmente "colocar qualquer texto aqui, na íntegra".

Alguns exemplos rápidos para ilustrar o ponto:

=TEXT("abc","hh:mm;@")
abc


=TEXT("abc","hh:mm;@@")
abcabc

Consulte este artigo para uma descrição detalhada do texto opções de formatação.

Este post explica. Basicamente 409 é a locale ID para "Inglês - Estados Unidos". Se você usou [$-414], por exemplo, então a data seria formatado para "Norueguês (Bokmål)" em vez.

Meu palpite para a pergunta (2) é que os dados brutos seria apresentado como uma cadeia em vez de ser formatado. Um teste rápido iria verificar isso.

[$-409] não parece ser uma condição. Parece ser um código de localidade.

Se eu formatar uma célula com um Personalizado formato de [$-409]m/d/yy h:mm AM/PM;@, insira uma data: 1/1/9, em seguida, exibir a formatação para a célula, vejo um Data formato de m/d/yy h:mm AM/PM com um Locale (localização) de English (United States).

Se você alterar o formato para algo como [$-439]m/d/yy h:mm AM/PM;@ você verá o conteúdo da célula em outro idioma.

Eu não tenho certeza sobre @. Ele pode indicar como exibir a data se a fonte correta ou local não está disponível.

Aqui está a lista de Locale IDs Atribuído pela Microsoft .

Há um bug no Excel 2007 que muda todos os formatos gerais para a [$ -409] formato do tipo data.
Normalmente, o uso do [$ -409] é um formato bem.
Não há correção para o bug ainda fornecido pela Microsoft. Este erro normalmente ocorre em grandes e Shared Excel pastas de trabalho.

Se você nunca tem a experiência onde todos os seus formatos gerais alterar a datas tente ir para Estilos de célula, clique com o botão direito no Normal e modificando volta normal geral. Vai dizer-lhe na caixa tipo de formato para Normal. Este é o erro, uma vez que normalmente deve ser 'geral' não algum verison de [$ -409].

Acabei por ter de apagar o formato do livro inteiramente. O livro deve ser unshared para fazer isso. Para apagar o formato [$ -409] acima identificado sob o tipo de célula "Normal" da pasta de trabalho, clique direito em uma célula, selecione Personalizado, desça até encontrar o [$ -409] tipo de formato identificado acima, excluir, em seguida, todos os formatos vai voltar ao que é chamado geral.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top