Excel VBA - União e Cruzamento

O Excel VBA possui dois métodos, pertencentes ao objeto Aplicativo, para manipular dois ou mais intervalos: União e Cruzamento.

União

O método Union retorna todas as células em dois ou mais intervalos passados ​​como seu argumento.

O comando a seguir selecionará o intervalo mostrado na imagem abaixo:

1 União (intervalo ("A1: B4"), intervalo ("B3: C6")). Selecione

Você pode atribuir qualquer valor ou fórmula ao intervalo retornado pelo método Union:

1 União (intervalo ("A1: B4"), intervalo ("B3: C6")) = 10

Isso inserirá o valor 10 em cada célula da União.

Você pode agrupar qualquer função que resuma um intervalo em torno de um método Union. O exemplo a seguir retornará a soma dos valores nos intervalos A1: B4 e B3: C6:

1 Result = Application.WorksheetFunction.Sum (union (Range ("A1: B4"), Range ("B3: C6")))

Você pode se surpreender ao obter o valor em Resultado como 160! Embora existam apenas 14 células na União (8 em cada intervalo com 2 sendo comum) quando você olha para Seleção, União na verdade retorna 16 células, portanto, o Resultado como 160.

Cruzar

O método Intersect retorna apenas as células comuns em dois ou mais intervalos passados ​​como seu argumento.

O comando a seguir selecionará o intervalo mostrado (área cinza) na imagem abaixo:

1 Cruzar (intervalo ("A1: B4"), intervalo ("B3: C6")). Selecione

Uso de Intersect

O uso mais comum do Intersect é em eventos associados a uma planilha ou pasta de trabalho. É usado para testar se as células alteradas pertencem a um intervalo de interesse. A seguir, verifique se as células alteradas (identificadas por Alvo) e Intervalo A1: A10 são comuns e tome as medidas adequadas se forem.

O objeto Intersect não retorna nada se não houver células comuns, então Intersect (Target, Range (“A1: A10”)) Is Nothing será True se não houver células comuns. Adicionar Não à condição torna-a Verdadeira apenas se o resultado do teste Intersect (Alvo, Intervalo (“A1: A10”)) É Nada for Falso, em outras palavras Alvo e Intervalo A1: A10 têm algumas células em comum.

12345 Sub-planilha privada_Change (ByVal Target As Range)If Not Intersect (Target, Range ("A1: A10")) Is Nothing Then'Realize a ação desejadaFim seEnd Sub

Escrito por: Vinamra Chandra

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave