Use a coluna da tabela do Excel na propriedade de intervalo de entrada de caixa de combinação

2

Eu perguntei isso no StackOverflow e fui redirecionado aqui. Desculpas por redundância.

Eu tenho uma planilha do Excel com uma caixa de combinação na Sheet1 que é preenchida por meio de sua propriedade Input Range de um Intervalo Nomeado Dinâmico na Plan2. Funciona bem e não é necessário nenhum VBA.

Meus dados na Planilha2 estão, na verdade, em uma tabela do Excel (todos os dados estão no arquivo XLS, sem fontes de dados externas). Para maior clareza, eu queria usar uma referência de tabela estruturada para o intervalo de entrada da caixa de combinação, mas não consigo encontrar uma sintaxe que funcione, por exemplo, myTable [[# Data], [myColumn3]]

Não consigo encontrar qualquer indicação de que a caixa de combinação aceitará referências de tabelas estruturadas, embora eu não consiga entender por que isso não aconteceria.

Portanto, pergunta de duas partes: 1. É possível usar uma referência de coluna de tabela na propriedade de intervalo de entrada da caixa de combinação (não usando VBA) e 2. COMO?

    
por V7L 01.06.2012 / 18:36

3 respostas

3

Eu percebo que esta é uma pergunta bem antiga, mas no caso de alguém se deparar com ela como se eu apenas quisesse resolver a mesma pergunta ... Como o ScottieB, eu também não consegui fazer a resposta da dav funcionar para mim. Veja como resolvi isso no Excel 2013.

  1. Crie sua lista vertical de opções para sua caixa de combinação. Não em uma tabela (ainda) não com um título (ainda, mas deixe espaço para uma) apenas uma coluna do que você precisa para o seu menu suspenso.

  2. Crie / defina um nome para sua lista usando a anotação normal de Folha1! $ A $ 1: $ A $ 2.

  3. Insira o controle de formulário da caixa de combinação usando o nome que você acabou de criar para o intervalo de entrada.

Até aí tudo bem. A caixa de combinação funcionará, mas novas opções adicionadas à parte inferior da lista vertical (mesmo imediatamente abaixo do intervalo nomeado) não serão adicionadas à lista suspensa; o intervalo nomeado, no qual o menu suspenso é baseado, não é expandido dinamicamente.

Agora para o bom bocado.

  1. Volte para a sua lista vertical (certifique-se de limpar qualquer coisa que você tenha adicionado em torno do intervalo nomeado, assim como você saiu na etapa 2) e adicione um cabeçalho acima dela. Qualquer texto serve, é apenas um rótulo para identificar sua lista de opções.

(Ou não! O Excel irá adicionar um para você no próximo passo, se você permitir.)

  1. Com o cabeçalho selecionado, use Ctrl + T ou Insert | Mesa. Aceite o intervalo encontrado pelo Excel e certifique-se de marcar a caixa "Minhas tabelas tem cabeçalhos" e clique em OK. Você pode alterar o nome da tabela se quiser: não importa.

(Nota: Se você não adicionou um cabeçalho, não marque a caixa 'Minha tabela tem cabeçalhos' para que o Excel crie um para você.)

Agora - aparentemente porque o intervalo original nomeado agora faz parte de uma definição de tabela - adicionar uma nova linha à parte inferior de sua lista vertical não apenas expande a definição da tabela automaticamente, mas também a do intervalo nomeado original. opção aparecerá na lista de opções da caixa de combinação. Magia!

    
por 26.01.2016 / 15:21
2

No Excel 2010, você pode fazer isso, mas é um processo de duas etapas.

  1. Crie um intervalo nomeado usando a referência estruturada da tabela (por exemplo, myrange = mytable [myColumn3].
  2. Use o intervalo nomeado como o intervalo de entrada do controle.

E, como seria de esperar, o campo de controle é atualizado com alterações na lista. Eu não tenho certeza porque você não pode usar a referência diretamente no controle, mas há muito sobre o Excel eu ainda não entendo.

EDIT: Não se esqueça de retirar o símbolo @ da referência da tabela no Gerenciador de nomes, caso contrário, você só obterá o valor da linha correspondente para o conjunto de validação (por exemplo, [minhaColuna3] não [@ minhaColuna3]). / p>     

por 01.06.2012 / 19:33
1

A resposta de Nick sobre o XL 2013 é boa se você ainda não criou a tabela.

No entanto, é mais simples que isso. Você define um nome apontando para a coluna da tabela. Em seguida, crie outro nome apontando para o primeiro nome. Você pode usar o segundo nome no intervalo de entrada e funciona bem.

    
por 29.01.2018 / 17:46