View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Claus Busch Claus Busch is offline
external usenet poster
 
Posts: 3,872
Default A faster code maybe?

Hi Howard,

Am Wed, 22 Apr 2015 05:05:42 -0700 (PDT) schrieb L. Howard:

For i = 1 To UBound(varData)
If varData(i, 4) < 150 Then
Sheets("Sheet4").Cells(Rows.Count, 1) _
.End(xlUp)(2) = varData(i, 1)

Sheets("Sheet4").Cells(Rows.Count, 3) _
.End(xlUp)(2) = " Type-" & varData(i, 5)

Sheets("Sheet4").Cells(Rows.Count, 5) _
.End(xlUp)(2) = " Age-" & varData(i, 6)


perhaps one thing: Calculate the destination row only once

For i = 1 To UBound(varData)
If varData(i, 4) < 150 Then
DestRow = Sheets("Sheet4").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Sheet4").Cells(DestRow, 1) = varData(i, 1)
Sheets("Sheet4").Cells(DestRow, 3) = " Type-" & varData(i, 5)
Sheets("Sheet4").Cells(DestRow, 5) = " Age-" & varData(i, 6)
End If
Next

Or declare dest as range and try it this way:

For i = 1 To UBound(varData)
If varData(i, 4) < 150 Then
Set Dest = Sheets("Sheet4").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Dest = varData(i, 1)
Dest.Offset(, 2) = " Type-" & varData(i, 5)
Dest.Offset(, 4) = " Age-" & varData(i, 6)
End If
Next


Regards
Claus B.
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional