Intersecção do Excel VBA

Intersecção VBA em matemática ou em geometria significa quando duas ou mais linhas ou áreas se cruzam. O ponto ou área comum criado depois disso é chamado de ponto ou área de interseção. No excel, também podemos destacar e medir a área de interseção.

Sintaxe da função de interseção no Excel VBA

A função Intersect possui a seguinte sintaxe no Excel VBA:

Como podemos ver, Arg1 e Arg2 são mencionados, Range. E o restante dos argumentos está entre colchetes. O que significa que os dois primeiros argumentos devem ser selecionados como Intervalo. Ou, em outras palavras, devem ser incluídas no mínimo 2 áreas para encontrar o Intersect. O restante dos argumentos pode ser selecionado como Intervalo ou pode incluir algumas outras coisas ou parâmetros, bem como por necessidade. Essa sintaxe pode acomodar no máximo 30 argumentos.

Como usar a função de interseção do Excel VBA?

Vamos aprender como usar uma função Intersect do VBA com alguns exemplos no Excel.

Você pode fazer o download deste modelo do VBA Intersect Excel aqui - Modelo do VBA Intersect Excel

Intersecção VBA - Exemplo # 1

No primeiro exemplo, destacaremos e criaremos a área de interseção quando tivermos algum conjunto de dados. Para isso, temos dados de amostra com três colunas preenchidas com números, como mostrado abaixo.

Agora precisamos encontrar a área de interseção de uma tabela de dados acima usando o VBA Intersect. Para isso, siga as etapas abaixo:

Etapa 1: Vá para a janela VBA e abra um módulo na opção de menu Inserir, como mostrado abaixo.

Obteremos uma janela em branco do módulo.

Etapa 2: Agora escreva Subcategoria do VBA Intersect ou em qualquer outro nome, conforme sua escolha.

Código:

 Sub VBAIntersect1 () End Sub 

Etapa 3: Agora insira diretamente o comando Intersect, como mostrado abaixo.

Código:

 Sub VBAIntersect1 () Intersect (End Sub 

Como já explicamos a sintaxe detalhada do Intersect, adicionaremos uma área de interseção. Podemos escolher N número de intervalos, mas um mínimo de dois intervalos deve estar lá.

Vamos considerar abaixo uma área de interseção em que a primeira área é de A1 a B8, a segunda área é de B3 a C12 e a terceira área é de A7 a C10. Podemos considerar e escolher qualquer combinação de um padrão de interseções.

Agora vamos ver em que ponto (s) essas áreas se encontram e se cruzam. A área comum criada por todas as áreas acima será a nossa área de interseção.

Etapa 4: agora no módulo VBA do Intersect, selecione o primeiro intervalo de áreas, como mostrado abaixo.

Código:

 Sub VBAIntersect1 () Intersect (Intervalo ("A1: B8") End Sub 

Adicionamos o primeiro intervalo, mas nossa sintaxe ainda está incompleta.

Etapa 5: Agora insira mais duas áreas que discutimos acima, separadas por vírgulas.

Código:

 Sub VBAIntersect1 () Intersect (Intervalo ("A1: B8"), Intervalo ("B3: C12"), Intervalo ("A7: C10")) End Sub 

Etapa 6: agora forneça a condição como "Verdadeiro".

Código:

 Sub VBAIntersect1 () Intersect (Intervalo ("A1: B8"), Intervalo ("B3: C12"), Intervalo ("A7: C10")) = Sub True End 

Isso completa nosso código.

Etapa 7: Agora compile o código e execute clicando no botão Play, localizado abaixo da barra de menus, como mostrado abaixo.

Obteremos a área comum ou a área cruzada com o valor VERDADEIRO, como mostrado acima. Embora tenhamos obtido a área de interseção, esse TRUE substituiu os dados que estavam lá na área de interseção.

Etapa 8: agora, para evitar perder isso, podemos alterar o fundo da cor, essas células comuns, para qualquer cor de nossa escolha. Para isso, após a sintaxe do Intersect, use a função Interior junto com Color, como mostrado abaixo.

Código:

 Sub VBAIntersect1 () Intersect (Intervalo ("A1: B8"), Intervalo ("B3: C12"), Intervalo ("A7: C10")). Interior.Color = End Sub 

Etapa 9: agora no VBA, não podemos usar o nome da cor que queremos usar diretamente. Para isso, precisamos adicionar " vb ", que é usado para ativar as cores disponíveis no VBA. Agora use-o e adicione qualquer nome da cor de sua escolha. Estamos selecionando Verde aqui, como mostrado abaixo.

Código:

 Sub VBAIntersect1 () Intersect (Intervalo ("A1: B8"), Intervalo ("B3: C12"), Intervalo ("A7: C10")). Interior.Color = vbGreen End Sub 

Etapa 10: Agora compile novamente o código escrito de uma só vez, pois o código é bem pequeno e execute-o.

Veremos que a cor da área cruzada é alterada para Verde e a área comum, criada pela interseção de três áreas diferentes em B7 a B8.

Intersecção VBA - Exemplo # 2

Existe outra maneira, mas muito diferente, de usar o VBA Intersect. Desta vez, usamos a interseção em uma planilha específica. Na Folha2, marcamos uma área de B4 a E8, como mostrado abaixo.

Siga os passos abaixo:

Etapa 1: No VBA, vá para a Planilha2 da pasta de trabalho atual, como mostrado abaixo.

Etapa 2: agora selecione a planilha nesta primeira opção suspensa. Isso permitirá que o código seja usado apenas nesta planilha atual.

Etapa 3: e no segundo menu suspenso, selecione a opção Alterar, como mostrado abaixo. Isso é usado para direcionar as alterações feitas no intervalo selecionado.

Etapa 4: Escreveremos nosso código apenas na primeira subcategoria.

Código:

 Private Sub Worksheet_Change (destino de ByVal como intervalo) End Sub 

Etapa 5: Usaremos o loop If-Else para formar uma condição para a função de interseção.

Código:

 Private Sub Worksheet_Change (destino ByVal como intervalo) Se final Se final Sub 

Etapa 6: Primeiro selecione o intervalo alvo de B4 a E8, como mostrado abaixo. Isso terá como alvo a interseção da área coberta de B4 a E8 principalmente.

Código:

 Private Sub Worksheet_Change (destino ByVal como intervalo) Se interceptar (destino, intervalo ("B4: E8")) End If End Sub 

Etapa 7: e se não houver nada na área de destino, precisamos escrever uma declaração que redirecione o código adiante.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) Não houver nada e terminar se End Sub 

Etapa 8: e se realmente o alvo estiver fora do alcance, podemos usar uma caixa de mensagem com uma mensagem de alerta, como mostrado abaixo.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) É Nada Então MsgBox "Out of Range" End If End Sub 

Etapa 9: E na declaração Else, onde algo está escrito dentro da caixa, devemos receber uma mensagem rápida se o conteúdo escrito estiver dentro da caixa, como mostrado abaixo.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) Não houver nada, então MsgBox "Fora do intervalo" Else MsgBox "Dentro do intervalo" End If End Sub 

Etapa 10: Agora compile cada etapa do código escrito e feche a planilha do VBA. Como escrevemos o código específico da planilha, ele funcionará da mesma forma.

Etapa 11: Agora escreva algo dentro da caixa.

Como podemos ver, escrevemos 2 na célula C5 dentro da caixa e recebemos a mensagem ou " Dentro do intervalo ".

Etapa 12: escreva novamente algo fora da caixa. Escrevemos 1 na célula B10 e recebemos a mensagem "Fora do intervalo", como mostrado abaixo.

Essa é outra maneira de usar o Intersect no Excel VBA.

Profissionais do Excel VBA Intersect

  • É muito fácil destacar pelo menos a área que se cruza com o processo do exemplo-1.
  • Isso é muito útil quando precisamos filtrar ou trabalhar com esse tipo de dados que possui interseção de uma área diferente, como Datas, Proprietário etc.

Coisas para lembrar

  • Lembre-se de salvar o arquivo no formato Macro Ativar Excel, para que o código funcione em todos os usos.
  • Escrevendo código na Planilha em vez do módulo, como mostrado no exemplo-2, torne o código aplicável apenas a essa planilha. Esse código não funcionará em nenhuma outra planilha.
  • Usar o intervalo de destino, como mostrado no exemplo-2, é útil para especificar a área a ser atingida.

Artigos recomendados

Este é um guia para o VBA Intersect. Aqui discutimos como usar a função de interseção do VBA do Excel, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Exemplos em loops VBA
  2. Excel COLUMN para Number
  3. VBA fazer até loop
  4. Criar um orçamento no Excel

Categoria: