View Full Version : [VBA Excel] Intersect contrario
Salve a tutti, è da due giorni che cerco in giro per la rete un comando simile all' Intersect(range1,range2), ma che invece di selezionarmi le celle in comune tra i range, voglio che mi selezioni le celle NON in comune.
Andrebbe bene anche un comando per togliere un determinato range da una variabile range (esempio di seguito):
range1 = Cells 'tutte le celle del foglio
range2 = Range ("AD4:AF5") 'range da togliere
range3= range1-range2 'tolgo da tutte le celle del foglio il range2
range3.select 'seleziono il select "filtrato"
Ovviamente il metodo sopra citato non si può fare, ma conoscete qualcosa di simile?
Grazie in anticipo!
(not intersect) = (union - intersect) non va bene?
(not intersect) = (union - intersect) non va bene?
Umh ... puoi spiegarmi con un esempio fatto di codice per favore?
banryu79
10-10-2011, 10:57
Umh ... puoi spiegarmi con un esempio fatto di codice per favore?
Ma il concetto è chiaro?
In VBA esiste una funzione Intersect, e ho visto che esiste anche una funzione Union. Per ottenere ciò che ti serve basta usarle entrambe.
Per ottenere la "non-intersezione" di due Range, r1 e r2 puoi fare così:
- calcoli il range rU dato dalla union di r1 e r2
- calcoli il range rI dato dall'intersection di r1 e r2
- calcoli il range rNotIntersection passando rU e rI ad una tua funzione che elimina da rU tutte le entry presenti in rI
rNotIntersection è ciò che cercavi. La parte in corsivo la devi (forse) implementare tu.
Ma il concetto è chiaro?
In VBA esiste una funzione Intersect, e ho visto che esiste anche una funzione Union. Per ottenere ciò che ti serve basta usarle entrambe.
Per ottenere la "non-intersezione" di due Range, r1 e r2 puoi fare così:
- calcoli il range rU dato dalla union di r1 e r2
- calcoli il range rI dato dall'intersection di r1 e r2
- calcoli il range rNotIntersection passando rU e rI ad una tua funzione che elimina da rU tutte le entry presenti in rI
rNotIntersection è ciò che cercavi. La parte in corsivo la devi (forse) implementare tu.
Sì , il concetto è chiarissimo, l'unico mio problema è appunto creare la riga di codice contenente la funzione di cui parli (in corsivo).
Non riesco proprio a venirne fuori, come si toglie un range da una variabile range? Ho provato a ciclarlo con ciclo for ma niente da fare.
banryu79
11-10-2011, 08:50
Sì , il concetto è chiarissimo, l'unico mio problema è appunto creare la riga di codice contenente la funzione di cui parli (in corsivo).
Non riesco proprio a venirne fuori, come si toglie un range da una variabile range? Ho provato a ciclarlo con ciclo for ma niente da fare.
Non saprei aiutarti, dato che non conosco VBA.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.