View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
PJFry PJFry is offline
external usenet poster
 
Posts: 143
Default Better way to apply a formula

Below is code that copies a formula down a worksheet until it reached the end
of the dataset. The formula is a sumif with variables that move as the
formula is copied down.

It runs fine, but takes about 2 minutes to complete around 1000 rows of
data. I am thinking there has to be a better way to do this. Any
suggestions?

Dim u1 As Range
Dim u2 As Range
Dim iSum As Range
Dim cSum As Range
Dim i As Integer

Set u1 = Sheet2.Range("N11")
Set u2 = Sheet2.Range("N12")
Set iSum = Sheet2.Range("C12:G12")
Set cSum = Sheet2.Range("C11:G11")

i = 1

Do Until Application.WorksheetFunction.Sum(iSum) = 0

u2 = "=IF(SUM(" & iSum.Address(False, False) & ")=SUM(" &
cSum.Address(False, False) & ")," & u1.Address(False, False) & " ," &
u1.Address(False, False) & "+" & i & ")"

Set u1 = u1.Offset(1, 0)
Set u2 = u2.Offset(1, 0)
Set iSum = iSum.Offset(1, 0)
Set cSum = cSum.Offset(1, 0)

Loop

Running 2007 with XP SP2.

Thanks!
PJ