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

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
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
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.
XL2000

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 213593 - Última Revisão: 01/29/2014 15:54:36 - Revisão: 4.2

Microsoft Excel 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbdtacode kbpending kbprogramming KB213593 KbMtpt
Comentários