Onde o texto de validação de dados é armazenado no Excel?


9

Eu tenho uma planilha do Excel 2003 com muitas regras diferentes de validação de dados. Existe alguma maneira de que eles possam ser visualizados além da caixa de diálogo de validação de dados regular?

Seria útil exportar uma lista com alertas e regras de erro de validação e verificar essa lista em vez de através da caixa de diálogo.

Alguém sabe se isto é possível? Ou como criar uma macro para fazer isso?

Se essa pergunta deveria ser migrada para o StackOverflow, como eu faria isso?


11
Esta é uma grande pergunta. O objeto Validação não é como o objeto Nomes - a validação está vinculada a um intervalo específico. Hmmm ...
DaveParillo

Respostas:


4

Há um objeto de validação de VBA do Excel, associado ao intervalo. Ver código:

With Range("e1").Validation
.Add Type:=xlValidateWholeNumber, _
    AlertStyle:=xlValidAlertInformation, _
    Minimum:="5", Maximum:="10"
.InputTitle = "Needs Wholenumber"
.ErrorTitle = "Integers"
.InputMessage = "Enter an integer from five to ten"
.ErrorMessage = "You must enter a number from five to ten"
End With

Essas propriedades são legíveis para que você possa extrair os valores .InputTitle ou .InputMessage ou min e max permitidos para a validação dessa célula programaticamente, para ver qual validation está sendo usada.

Tente o seguinte:

Sub test()
Range("a1") = Range("e1").Validation.InputTitle & ": Range = " & Range("e1").Validation.Formula1 & " to " & Range("e1").Validation.Formula2
End Sub

O código acima retorna para a célula A1: Necessita Wholenumber: Range = 5 a 10 . Veja os livros on-line para mais informações. http://msdn.microsoft.com/en-us/library/aa224495(office.11).aspx

Glenn


11
Este é o Excel 2007, mas acho que o modelo de 2003 será semelhante a este.
Glenn M

essa é a abordagem básica que eu usei. o intervalo A1: AZ4000 foi testado com For Each cell no Range, coletando Validation.ErrorTitle e Validation.ErrorMessage com seus cell.addresss e foi gravado em outra planilha para ver os resultados. Então eu poderia escrever regras condicionais para alterar as Mensagens e Títulos. Muita diversão herdar alguém antes do trabalho. Obrigado Glenn, não exatamente o que eu precisava, mas o +1 útil. Se alguém souber onde tudo isso está armazenado na pasta de trabalho, ainda estou muito curioso.
datatoo

Você está perguntando onde está armazenado no arquivo binário BIFF8?
precisa saber é o seguinte

Não tenho certeza de como ou onde ele está armazenado, pois há vários intervalos de células em uma determinada planilha. Gostaria principalmente de uma maneira simples de editar o conteúdo armazenado. Você pode obter as informações, mas indiretamente.
datatoo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.