Validação de dados personalizados do Excel 2007, excluindo caracteres em grande escala

0

Tentando criar validação de dados (absolutamente sem macros, simplesmente não é uma opção), onde um usuário pode digitar somente caracteres básicos (A-Z, a-z, 0-9, -, ~, ', \, /) Então, o que tentei fazer foi criar uma validação que verificasse certos caracteres e exibisse uma mensagem de erro se eles fossem encontrados. Portanto, minha fórmula de validação de dados é a seguinte.

= ISERROR (FIND ("&", D17: D110))

Onde D17: D110 é o intervalo de células que serão todas validadas. Então, depois que um usuário estiver digitando seus valores, se a célula que ele está editando no momento, contiver um "&" isso causará um erro. Este método funciona lindamente. Contudo! Eu preciso proibir mais do que esse caractere, então eu tentei.

= ISERROR ((OR (FIND ("&", D17: D110), FIND ("^", D17: D110))))

Isso não só não funciona para "^", mas também quebra "&".

Então, o que eu preciso é uma maneira de

  1. Bloquear a permissão de vários caracteres
  2. Permitir apenas os caracteres listados acima.

Advertência: Devido à forma como a fórmula está sendo adicionada (.NET OfficeOpenXml), não consigo referenciar APENAS a única célula como você faria se você inserisse no Excel e usasse a fórmula. É uma limitação da API. Essa é a razão pela qual eu encontrei uma maneira de usar com todo o intervalo.

    
por user1115223 08.06.2016 / 16:39

1 resposta

0

É porque gera um erro dentro do OR, fazendo com que OU não avalie. Além disso, você deve usar AND.

Tente isto:

=AND(ISERROR(FIND("&",A1)),ISERROR(FIND("^",A1)))

Usando AND, porque ISERROR será TRUE se o caracter não for encontrado.

and(notA,notB) = not(or(A,B))

então se A = verdadeiro significa & é encontrado, e B = true significa ^ é encontrado, eu acredito que você pode ver a lógica

    
por 08.06.2016 / 16:55