help locating first empty cell in a column

C

Celt

I am looking for a function that will search column A and return th
address of the first blank cell. I have been trying to do this with a
Address & Match combo as follows:


=ADDRESS(MATCH(9.99999999999999E+307,A:A)+1,1)

Alone this formula works great. However, when I put it in a macro, i
doesn't work. Here is my macro:

ActiveWorkbook.Names.Add Name:="ABC", RefersToR1C1:= _
"=OFFSET(INDIRECT(ADDRESS(MATCH(""EML*"",Sheet1!C6,0),6)),0,-5,COUNTIF(Sheet1!C6,LEFT(""EML*"",5)),COUNTA(Sheet1!R4))"
ActiveWorkbook.Names.Add Name:="EMPTY", RefersToR1C1:= _
"=ADDRESS(MATCH(9.99999999999999E+307,Sheet1!R1C1)+ 1,1,4)"
Range("ABC").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A4").Select
ActiveSheet.paste
Range("EMPTY").Select

Basically the macro is taking "ABC" which is a specific chunk o
accounting data in a much larger pool of data from Sheet1 an
copy/pasting it to Sheet2. What I was hoping the macro would do i
then select the first empty cell in Column A under what I just pasted.

Visual Basic doesn't seem to like my "Empty" reference. The Debugge
pops up at Range("EMPTY").Select.

Anyone have any advice. Any help is much appreciated!!
 
J

John Green

If you know that A1 and A2 contain data, you can use the following:

Cells(Range("A1").End(xlDown).Row + 1, "A").Select

To cover the cases where A1 or A2 might be empty you need to add more logic.
You can test individual cells using the IsEmpty function:

If IsEmpty(Range("A1")) Then
Range("A1").Select
ElseIf IsEmpty(Range("A2")) Then
Range("A2").Select
Else
Cells(Range("A1").End(xlDown).Row + 1, "A").Select
End If

John Green - Excel MVP
 
R

Ron de Bruin

Hi John

Good to see you in the newsgroup

Maybe this

Sub test()
On Error GoTo BodemUp
Columns("A").Cells.SpecialCells(xlCellTypeBlanks).Cells(1).Select
Exit Sub
BodemUp: Cells(Rows.Count, "A").End(xlUp)(2).Select
End Sub

--
Regards Ron de Bruin
http://www.rondebruin.nl


John Green said:
If you know that A1 and A2 contain data, you can use the following:

Cells(Range("A1").End(xlDown).Row + 1, "A").Select

To cover the cases where A1 or A2 might be empty you need to add more logic. You can test individual cells using the IsEmpty
function:

If IsEmpty(Range("A1")) Then
Range("A1").Select
ElseIf IsEmpty(Range("A2")) Then
Range("A2").Select
Else
Cells(Range("A1").End(xlDown).Row + 1, "A").Select
End If

John Green - Excel MVP
 
J

Jim Thomlinson

Sub test()
Dim rngFirstEmpty As Range
Dim wks As Worksheet

Set wks = ActiveSheet 'or whatever sheet you want
Set rngFirstEmpty = wks.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
MsgBox "The first empty cell is in address " & rngFirstEmpty.Address
'rngFirstEmpty.Select 'Uncomment this to select this cell
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top