DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 213593 - Última revisão: quarta-feira, 11 de outubro de 2006 - Revisão: 4.2

 

Sintomas

Quando você executar uma macro que usa uma data de uma célula da planilha, a data retornada pela macro pode ser quatro anos e um dia anterior à data real.

Causa

Uma macro retorna uma data que é quatro anos e um dia anteriormente quando você selecionar o sistema de data 1904 na guia cálculo da caixa de diálogo Opções , e uma das seguintes condições for verdadeira:

  • A macro usa a propriedade Value2 quando ele armazena a data.

    - ou -

  • A macro usa uma função na biblioteca de aplicativo do Microsoft Excel quando ele armazena a data.

Como Contornar

A macro a seguir determina se o sistema de data 1904 está selecionado, converte uma data para o sistema de datas 1900 e retorna a data esperada.

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.
Para usar a macro, execute essas etapas:

  1. Para inserir uma nova pasta de trabalho, clique em novo no menu arquivo , clique em pasta de trabalho e, em seguida, clique em OK .
  2. No menu Ferramentas , clique em Opções , clique na guia cálculo e clique em sistema de datas 1904 . Em seguida, clique em OK .
  3. Digite as datas a seguintes na Planilha1:
          A1: 7/5/96
          A2: 5/11/96
          A3: 4/28/96
    					
  4. No menu Ferramentas , aponte para macro e clique em Editor do Visual Basic . No Editor do Visual Basic, clique em módulo no menu Inserir .
  5. Digite o seguinte código na folha de módulo:
          Sub DateTest()
             'dimension date variable
             Dim dDate As Date
    
             'store minimum date in range into variable
             dDate = Application.Min(Worksheets(1).Range("A1:A3"))
    
             'display stored date
             MsgBox "Stored date" & Chr(13) & dDate
    
             'check for 1904 date system
             If Application.ThisWorkbook.Date1904 Then
    
              'convert 1904 base date to 1900 base date
              dDate = DateSerial(Year(dDate) + 4, Month(dDate), Day(dDate) + 1)
    
              'display converted date
                MsgBox "Converted date" & Chr(13) & dDate
    
             Else
                MsgBox "1904 date system is not enabled"
             End If
          End Sub
    						
  6. Para executar a macro, aponte para macro no menu Ferramentas e clique em macro . Selecione DateTest e clique em Executar .
A primeira caixa de mensagem aparece com uma data 4/27/92, que é quatro anos e um dia anterior à primeira data no intervalo de células de A1 para A3. A segunda caixa de mensagem exibe a data "convertida" correta de 28/4/96.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.

Mais Informações

Para aplicativos do Visual Basic automaticamente não detectar o sistema de data 1904 e converter a data conforme necessário. Se um usuário seleciona o sistema de datas 1904 no Microsoft Excel e executa uma macro que lê uma data de uma célula da planilha, a diferença pode ser quatro anos e um dia (contas o um dia extra para o ano bissexto). Por exemplo, uma data de 9/1/96 no sistema de data 1904 pode retornar uma data de 8/31/92.

A discrepância de sistema de data pode ocorrer no Visual Basic quando você selecionar o sistema de datas 1904 e a macro usa a propriedade Value2 quando ele armazena a data.

A informação contida neste artigo aplica-se a:
  • Microsoft Excel 2000 Standard Edition
Palavras-chave: 
kbmt kbbug kbdtacode kbpending kbprogramming KB213593 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 213593  (http://support.microsoft.com/kb/213593/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store