2013-03-20 2 views
13

Ceci est une démo simple de ce que je veux faire. Je veux définir une formule à une gamme de cellules (par exemple, C1 à C10).Définir la formule à une gamme de cellules

Range("C1").Formula = "=A1+B1" 

mais comment utiliser la formule des cellules dynamiques comme celui-ci:

Range("C1:C10").Formula = "=Ax+Bx" 

donc en réalité il 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 ci-dessus travail : Range("C1:C10").Formula = "=Ax+Bx"

Répondre

10

Je voudrais mettre à jour la formule dans C1. Ensuite, copiez la formule de C1 et de le coller jusqu'à C10 ...

ne suis pas sûr une solution plus élégante

Range("C1").Formula = "=A1+B1" 
Range("C1").Copy 
Range("C1:C10").Pastespecial(XlPasteall) 
+1

Il n'y a rien de mal à cette façon de faire, sauf que c'est beaucoup plus lent que par exemple le code de ma réponse. Il utilise la technique copier-coller qui n'est pas efficace lorsque l'on travaille avec de nombreuses cellules. –

+0

@mehow convenu .. Et ce serait plus compréhensible et facile à écrire si la formule est imbriquée et complexe. –

+1

préférez neilxdims solution plus simple – Simon

6

Utilisation FormulaR1C1:

Cells((1,3),(10,3)).FormulaR1C1 = "=RC[-2]+RC[-1]" 

Contrairement à la formule, FormulaR1C1 a référencement relatif.

+1

Votre exemple n'est pas dans une syntaxe acceptable. Vouliez-vous dire 'Range (Cellules (1,3), Cellules (10,3)) FormulaR1C1 =" = RC [-2] + RC [-1] "'? – dePatinkin

6

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 à travers une plage de cellules.

Range("C1").Formula = "=A1+B1" 
Range("C1:C10").FillDown 
+0

Et c'est rapide aussi (j'ai essayé sur les enregistrements 5k) – awesomo

31
Range("C1:C10").Formula = "=A1+B1" 

simple que cela.

Il remplit automatiquement (FillDown) la plage avec la formule.

+1

Cela devrait vraiment être accepté comme réponse, parce qu'il accomplit la demande d'O.P. dans une ligne de code. –

+0

Sauf qu'il est 2 ans trop tard. Comme c'est mon commentaire. – jallington

0

Utilisez cette

  Sub calc() 


      Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)" 


      End Sub 
1

Si vous essayez de remplir une colonne, vous pouvez le faire sur Excel 2010 avec une seule commande clavier:

  1. Définissez la formule de la partie supérieure gauche cellule
  2. -La plupart Sélectionnez la gamme
  3. Appuyez sur Ctrl-d

Ctrl-D remplira une ligne sélectionnée ou remplira un tableau ou une colonne sélectionné. Le référencement relatif est appliqué.

Questions connexes