c'est une simple démonstration de ce que je veux faire. Je veux définir une formule à une plage de cellules (par exemple, C1 à C10).
Range("C1").Formula = "=A1+B1"
mais comment faire la formule utilise des cellules dynamiques comme ceci:
Range("C1:C10").Formula = "=Ax+Bx"
en réalité, c'est comme
C1 = A1 + B1
C2 = A2 + B2
C3 = A3 + B3
C4 = A4 + B4
C5 = A5 + B5
...
C10 = A10 + B10
comment changer RHS de cette formule pour faire fonctionner ci-dessus: Range("C1:C10").Formula = "=Ax+Bx"
Je mettrais à jour la formule en C1. Copiez ensuite la formule de C1 et collez-la jusqu'à C10 ...
Pas sûr d'une solution plus élégante
Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
Range("C1:C10").Formula = "=A1+B1"
Aussi simple que cela.
Il remplit automatiquement (FillDown) la plage avec la formule.
Je pense que c'est la réponse la plus simple possible: 2 lignes et très compréhensible. Il émule la fonctionnalité de glisser une formule écrite dans une cellule sur une plage de cellules.
Range("C1").Formula = "=A1+B1"
Range("C1:C10").FillDown
Utilisez FormulaR1C1:
Cells((1,3),(10,3)).FormulaR1C1 = "=RC[-2]+RC[-1]"
Contrairement à Formula, FormulaR1C1 a un référencement relatif.
Utilisez ceci
Sub calc()
Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)"
End Sub
Si vous essayez de remplir une colonne, vous pouvez le faire sur Excel 2010 avec une seule commande au clavier:
Ctrl-D remplira une ligne sélectionnée ou une matrice ou une colonne sélectionnée. Le référencement relatif est appliqué.