XL2000: Data devolvida de uma macro é quatro anos demasiado antecipada

Traduções de Artigos Traduções de Artigos
Artigo: 213593 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Quando executar uma macro que utiliza uma data numa célula de folha de cálculo de data devolvida pela macro poderá ser quatro anos e um dia anteriores a data actual.

Causa

Uma macro devolve uma data que é quatro anos e um dia anterior quando seleccionar o sistema de datas 1904 no separador cálculo da caixa de diálogo Opções e uma das seguintes condições for verdadeira:

  • A macro utiliza a propriedade valor2 quando armazena a data.

    - ou -

  • A macro utiliza uma função na biblioteca de aplicação do Microsoft Excel quando armazena a data.

Como contornar

A macro seguinte determina se o sistema de datas 1904 está seleccionado, converte uma data para o sistema de datas 1900 e devolve a data prevista.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.
Para utilizar a macro, siga estes passos:

  1. Para inserir um novo livro, clique em Novo no menu ficheiro , clique em livro e, em seguida, clique em OK .
  2. No menu Ferramentas , clique em Opções , clique no separador cálculo e clique em sistema de datas 1904 . Em seguida, clique em OK .
  3. Escreva as seguintes datas na Folha1:
          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. Escreva o seguinte código na folha do 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 '. Seleccione DateTest e clique em Executar .
É apresentada a primeira caixa de mensagem com uma data de 4/27/92, que é quatro anos e um dia anteriores data no intervalo de células A1 a A3. A segunda caixa de mensagem apresenta a data correcta "convertida" de 28/4/96.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Visual Basic for Applications não automaticamente detectar o sistema de datas 1904 e converta a data conforme necessário. Se um utilizador selecciona o sistema de datas 1904 no Microsoft Excel e executa uma macro que lê uma data de uma célula de folha de cálculo, a diferença poderá estar quatro anos e um dia (contas mais um dia para o ano bissexto). Por exemplo, uma data de 9/1/96 no sistema de datas 1904 poderá devolver uma data de 8/31/92.

A discrepância de sistema de data pode ocorrer no Visual Basic quando seleccionar o sistema de datas 1904 e a macro utiliza a propriedade valor2 quando armazena a data.

Propriedades

Artigo: 213593 - Última revisão: 29 de janeiro de 2014 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • Microsoft Excel 2000 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbdtacode kbpending kbprogramming KB213593 KbMtpt
Traduçã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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 213593

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com