ho cercato una soluzione al seguente problema ma non ho trovato rimedio.
il fine è quello di rendere più spedita l'esecuzione della macro.
in molte celle del foglio 2 ho inserito una identica formula, variando i riferimenti.
lasciando alcune celle alle intestazioni quelle interessate sono disposte ogni 3 righe,
a partire dalla riga 7, e quindi 7,10,13,..
e tutte nelle stesse colonne c-o.
prima di eseguire la macro devo copiare i valori di queste celle nelle rispettive righe adiacenti,
quindi copio il range C7-O7 in R7-AD7 e così di seguito.
usando copy-destination ottengo velocità di esecuzione, ma nelle celle di destinazione ritrovo anche le formule,
con dei riferimenti ad una altra colonna, mentre interessano solo i valori.
la macro che sto usando é:
- Codice: Seleziona tutto
.............
For Rig = 7 To 121 Step 3
Set rngVALORI = .Range("C" & Rig & ":O" & Rig)
rngVALORI.Copy
.Range("R" & Rig).PasteSpecial xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Set rngVALORI = Nothing
Next Rig
End With
End Sub
.........
ho provato con il metodo union, ma ottengo errore.
ho pensato allora ad un ciclo con un array del tipo;
- Codice: Seleziona tutto
arrini=.Range("C" & Rig & ":O" & Rig)
.Range("r" & Rig & ":ad" & Rig)=arrini
ma è pur sempre un ciclo.
ho provato anche a dimensionare più range, uno per ogni riga interessata, e col metodo union eseguire il copia-incolla,
ma le righe di destinazione si trovano in successione e non distanziate come quelle di partenza.
quello che vorrei realizzare, se si può, è considerare tutto il range di partenza, inserendolo in un array o in qualche altro modo,
e di copiare tutti i valori in un unico processo.
saluti buona notte