Existem várias maneiras de identificar se uma célula do Excel contém um número diretamente inserido em oposição a um número resultante de uma fórmula:
1. Usando as funções `isnumber` e` `` `
Este é o método mais direto e confiável. Combine essas funções para verificar as duas condições:
* `isNumber (A1)`: Esta função retorna `true` se a célula A1 contiver um número (digitada diretamente ou o resultado de uma fórmula que avalia em um número) e` falso`.
* `isformula (a1)`: Esta função retorna `true` se a célula A1 contiver uma fórmula e` falso`.
Para verificar se uma célula contém um número * inserido diretamente *, você precisa de `isnumber` para ser` true` e `` isformula` para ser `false`:
`` `Excel
=E (isNumber (A1), não (isformula (a1)))
`` `
Esta fórmula retornará `true` apenas se a célula A1 contiver um número digitado diretamente na célula, não calculado por uma fórmula. Coloque esta fórmula em outra célula, substituindo `a1` pela célula que você deseja verificar.
2. Usando a função `célula` (menos confiável):
A função `célula` pode fornecer informações sobre a formatação e o conteúdo de uma célula. No entanto, é menos confiável para essa tarefa específica, pois nem sempre pode distinguir com precisão entre um número diretamente inserido e uma fórmula resultando em um número:
`` `Excel
=If (Cell ("Type", A1) ="V", verdadeiro, falso)
`` `
Isso verifica se o tipo de célula é "v" (valor), que * pode * indicar um número diretamente inserido. Mas uma fórmula avaliada para um número também retornaria "V", para que esse método não seja infalível.
3. Macro VBA (para cenários mais complexos):
Para necessidades mais complexas ou análise em larga escala, uma macro VBA oferece maior flexibilidade. Você pode iterar através das células e examinar suas propriedades para determinar se elas são fórmulas ou números inseridos diretamente. Isso é mais avançado, mas oferece controle preciso. Aqui está um exemplo simples:
`` `VBA
Sub CheckCellType ()
Célula escura como alcance
Para cada célula em alcance ("A1:A10") 'Ajuste o intervalo conforme necessário
Se fornumérico (Cell.Value) e não Cell.Hasformula, então
Debug.print Cell.address &"Contém um número diretamente inserido".
Final se
Próxima célula
Final sub
`` `
Essa macro se alça através das células A1 a A10. `Isnumeric` verifica um número, e` celular.hasformula` verifica se é uma fórmula. O resultado é impresso na janela imediata (visualização> janela imediata).
O método `e (isNumber (a1), não (isformula (a1))` é a abordagem mais confiável e recomendada Para determinar se uma célula contém um número diretamente inserido no Excel. Os outros métodos são fornecidos para a integridade, mas têm limitações.