View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
OssieMac OssieMac is offline
external usenet poster
 
Posts: 2,510
Default Copy rows with values in sheet 1 to next empty row in sheet2

My interpretation here is that you want to include any rows where the column
A cell contains a value but not if it contains a Formula or Formatting. (I
interpretted the Formatting as Number formatting.)

If my interpretation is correct then try the following. I kept the If/EndIf
tests separate so they are easy to delete if you don't want some of the tests.

Sub CopyData()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim rngColA As Range
Dim c As Range

Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")

With ws1
'Following assumes column headers and
'data starts on row 2.
Set rngColA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))
End With

For Each c In rngColA
'Test if empty cell
If IsEmpty(c.Value) Then
GoTo endForEach 'Empty cell column A so skip
End If

'Test number format
If c.NumberFormat < "General" Then
GoTo endForEach 'Formatted so skip
End If

'Test for formula
If Left(c.Formula, 1) = "=" Then
GoTo endForEach 'Is formula so skip
End If

c.EntireRow.Copy
ws2.Cells(Rows.Count, "A") _
.End(xlUp).Offset(1, 0) _
.PasteSpecial Paste:=xlPasteValues

endForEach:
Next c
Application.CutCopyMode = False
ws2.Select
Range("A1").Select
End Sub


--
Regards,

OssieMac