2013-03-20 10 views
13

To jest prosta prezentacja tego, co chcę zrobić. Chcę ustawić formułę na zakres komórek (np. Od C1 do C10).Ustaw formułę dla zakresu komórek

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

ale jak wykorzystać formuły dynamiczne komórki takie jak ten:

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

więc w rzeczywistości jest niczym,

C1 = A1 + B1 
C2 = A2 + B2 
C3 = A3 + B3 
C4 = A4 + B4 
C5 = A5 + B5 
... 
C10 = A10 + B10 

jak zmienić RHS tej formuły do ​​dokonania wyżej pracy : Range("C1:C10").Formula = "=Ax+Bx"

Odpowiedz

10

Chciałbym zaktualizować formułę w C1. Następnie skopiować formułę z C1 i wklej go do C10 ...

nie wiesz o bardziej eleganckie rozwiązanie

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

Nie ma nic złego w tym sposobie robienia tego oprócz tego, że jest znacznie wolniej niż na przykład kod z mojej odpowiedzi. Używa techniki kopiowania i wklejania, która nie jest wydajna podczas pracy z wieloma komórkami. –

+0

@mehow Zgoda .. A to byłoby łatwiejsze do zrozumienia i łatwiejsze do napisania, jeśli formuła jest zagnieżdżona i złożona. –

+1

preferuj prostsze rozwiązanie neilxdims – Simon

6

Zastosowanie FormulaR1C1:

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

przeciwieństwie do Formuły, FormulaR1C1 ma względną odniesienie.

+1

Twój przykład nie ma dopuszczalnej składni. Czy miałeś na myśli 'Range (komórki (1,3), komórki (10,3)) FormulaR1C1 =" = RC [-2] + RC [-1] "'? – dePatinkin

6

Myślę, że jest to najprostsza możliwa odpowiedź: 2 linie i bardzo zrozumiałe. Emuluje funkcjonalność przeciągania formuły zapisanej w komórce w szeregu komórek.

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

I jest też szybki (próbowałem na rekordach 5k). – awesomo

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

proste.

To autouzupełnianie (FillDown) zakresu z formułą.

+1

To naprawdę powinno być zaakceptowane jako odpowiedź, ponieważ realizuje żądanie O.P. w jednym wierszu kodu. –

+0

Z tym, że jest o 2 lata za późno. Jak jest mój komentarz. – jallington

0

Użyj tego

  Sub calc() 


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


      End Sub 
1

Jeśli starasz się wypełnić kolumnę, można to zrobić w programie Excel 2010 za pomocą jednego polecenia klawiatury:

  1. Ustaw formułę lewym górnym najbardziej komórek
  2. wybrać cały zakres
  3. Ctrl-d

Ctrl-D wypełni zaznaczony wiersz lub wypełni wybraną tablicę lub kolumnę. Względne odniesienie jest stosowane.

Powiązane problemy