ID do artigo: 108518 - Última revisão: terça-feira, 10 de outubro de 2006 - Revisão: 2.2

Range.EntireRow pode retornar resultados incorretos

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Nas versões do Microsoft Excel listados no começo deste artigo, o método Range.EntireRow pode retornar um resultado incorreto se o intervalo é uma seleção não adjacente. Por exemplo, se o intervalo atual é a seleção não adjacente $ A $ 1: $ A $ 3, $ C $ 11: $ C $ 13, o método Range.EntireRow retornará $ 1: $ 13, não a $ 1: $ 3, $ 11: $ 13 como deve ser esperado. Isso também ocorre quando você usa o método Range.EntireColumn para retornar colunas inteiras quando o intervalo é não-adjacente.

Como Contornar

Para retornar o corretas linhas ou colunas em uma seleção quando a seleção é não-adjacente, você deve separar a seleção em áreas, no qual uma área é definida como uma parte de uma seleção não adjacente. Esse processo é ilustrado no exemplo de código Visual Basic abaixo.

Exemplo de código do Visual Basic

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. Observação: Para converter este exemplo funcione com colunas, use "Coluna" no lugar de "Linha".

Para usar o procedimento SelectRows Sub, selecione qualquer combinação de células em Sheet1. (Este exemplo assume que a seleção atual é $ A $ 1: $ A $ 3, $ C $ 11: $ C $ 13 em Sheet1.) Em seguida, clique em macro no menu Ferramentas, selecione o nome SelectRows da lista de nomes de macro e clique em executar.
     Option Explicit

   Sub SelectRows()

      ' Dimension some variables.
      Dim Counter As Integer, X As Variant, Y As Variant

      Sheets("Sheet1").Activate          ' Ensure the worksheet is active.

      ' Sets range X equal to the current selection.
      Set X = Selection
      ' Initializes range Y equal to the first Area in X.
      Set Y = X.Areas(1)

      ' Iterate through the loop once for each Area (nonadjacent piece)
      ' of the range X.
      For Counter = 1 To X.Areas.Count
         ' Set Y equal to the union of its previous range and the range of
         ' the rows which encompass the current Area.
         Set Y = Application.Union(Y, X.Areas(Counter).EntireRow)
      Next                                ' Loop until done.

      Y.Select                            ' Select the range Y.

   End Sub
				
por exemplo, se você selecionar o intervalo $ A $ 1: $ A $ 3, $ C $ 11: $ C $ 13 na planilha Sheet1 e execute o procedimento SelectRows Sub, o procedimento determina quantas áreas existem na seleção (há duas: $ A $ 1: $ A $ 3 e $ C $ 11: $ C $ 13), determina qual combinação de linhas abrange cada área ($ 1: $ 3, $ 11: $ 13) e seleciona o intervalo de $ 1: $ 3, $ 11: $ 13.

Situação

A Microsoft confirmou que este é um problema nas versões do Microsoft Excel listados no começo deste artigo. Esse problema foi corrigido no Microsoft Excel 97 para Windows e Microsoft Excel 98 Macintosh Edition.

Mais Informações

Você pode criar uma seleção não adjacente selecionando um intervalo e, em seguida, selecionando outro intervalo mantendo pressionada a tecla CTRL no teclado ou usando comandos Microsoft Excel versão 4.0 ou o Visual Basic que selecionar dois ou mais intervalos ao mesmo tempo.

A informação contida neste artigo aplica-se a:
  • Microsoft Excel 95a
  • Microsoft Excel 5.0c
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 5.0a for Macintosh
Palavras-chave: 
kbmt kbbug kbprogramming KB108518 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: 108518  (http://support.microsoft.com/kb/108518/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.