2009-06-19 4 views

Répondre

1

Cela semble fonctionner pour moi

Call rng.Clear 
Dim rngState As Range 
Set rngState = rng.Resize(nRowCount, nColumnCount) 
rngState.FormulaArray = "whatever_array_formula" 
rngState.Calculate 
0

Ce que je cherchais, mais juste ma version plus approfondie étant donné que le tableau a déjà été peuplée:

Sub PasteArray(vTheArray As Variant) 
Dim rPasteHere As Range 

With ActiveWorkbook 
    Set rPasteHere = .Sheets("PayRoll").Range("A1").CurrentRegion 'Assign the region to use 
    With rPasteHere 
     .Clear 'Wipe the current region clean 
     Set rPasteHere = .Resize(UBound(vTheArray, 1) + 1, UBound(vTheArray, 2) + 1) 'Resize the region to your input 
     .FormulaArray = vTheArray 'Dump the array into the resized region 
    End With 
End With 
Set rPasteHere = Nothing 'Clean up! 
End Sub 

Rappelez-vous que les tableaux sont basés zéro , donc le +1 dans la fonction .Resize. Pour mon application j'ai codé en dur le nom de la feuille et la gamme si naturellement comment rPasteHere vient à l'individu.