Забудьте буфер обмена и используйте прямую передачу значения с промежуточным массивом вариантов.
sub copia2()
dim arr as variant, tmp as variant, i as long
with workSheets("Dati")
arr = .Range("A3:G300").value
'collect AA
tmp = .Range("AA3:AA300").value
'make room for AA
redim preserve arr(lbound(arr, 1) to ubound(arr, 1), _
lbound(arr, 2) to ubound(arr, 2) + 1)
'transfer AA
for i = lbound(arr, 1) to ubound(arr, 1)
arr(i, ubound(arr, 2)) = tmp(i, 1)
next i
'collect AC
tmp = .Range("AC3:AC300").value
'make room for AC
redim preserve arr(lbound(arr, 1) to ubound(arr, 1), _
lbound(arr, 2) to ubound(arr, 2) + 1)
'transfer AC
for i = lbound(arr, 1) to ubound(arr, 1)
arr(i, ubound(arr, 2)) = tmp(i, 1)
next i
end with
with workSheets("Calcolo")
'transfer values to destination
.Range("A3").resize(ubound(arr, 1), ubound(arr, 2)) = arr
end with
end sub