ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   selecting relative ranges (https://www.excelbanter.com/excel-programming/415701-selecting-relative-ranges.html)

John Br

selecting relative ranges
 
I'm new to macros and I recorded the following macro in an attempt to learn
how to append items to an ever growing list. I am attempting append 4 copies
of a cell to the end of a column list. I thought I could get to the first
blank cell at the end of the list by going to a blank cell above the list and
selecting "End, Down" twice and then Down. This works fine the first time,
but when I repeat it, the last entry is overwritten. I don't know how to get
the range statement to not be Q8:Q11, but rather a relative address.

Any help would be appreciated.

Sub Copy4()
Selection.Copy
Application.Goto Reference:="R1C17"
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("Q8:Q11").Select
ActiveSheet.Paste
End Sub

[email protected]

selecting relative ranges
 
On Aug 14, 4:04*pm, John Br <John
wrote:
I'm new to macros and I recorded the following macro in an attempt to learn
how to append items to an ever growing list. *I am attempting append 4 copies
of a cell to the end of a column list. *I thought I could get to the first
blank cell at the end of the list by going to a blank cell above the list and
selecting "End, Down" twice and then Down. *This works fine the first time,
but when I repeat it, the last entry is overwritten. *I don't know how to get
the range statement to not be Q8:Q11, but rather a relative address.

Any help would be appreciated.

Sub Copy4()
* * Selection.Copy
* * Application.Goto Reference:="R1C17"
* * Selection.End(xlDown).Select
* * Selection.End(xlDown).Select
* * Range("Q8:Q11").Select
* * ActiveSheet.Paste
End Sub


I am assuming that you want to drop the data in column Q after the
last row containing data. This will copy the contents of the active
cell to the end of column Q

Sub copy4()
Dim CopyTo As Range
Dim CopyFrom As Range
Set CopyTo = Range("Q1").End(xlUp)
Set CopyFrom = ActiveCell
CopyTo.Offset(1, 0).Value = CopyFrom.Value

End Sub

John Br[_2_]

selecting relative ranges
 


" wrote:

On Aug 14, 4:04 pm, John Br <John
wrote:
I'm new to macros and I recorded the following macro in an attempt to learn
how to append items to an ever growing list. I am attempting append 4 copies
of a cell to the end of a column list. I thought I could get to the first
blank cell at the end of the list by going to a blank cell above the list and
selecting "End, Down" twice and then Down. This works fine the first time,
but when I repeat it, the last entry is overwritten. I don't know how to get
the range statement to not be Q8:Q11, but rather a relative address.

Any help would be appreciated.

Sub Copy4()
Selection.Copy
Application.Goto Reference:="R1C17"
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("Q8:Q11").Select
ActiveSheet.Paste
End Sub


I am assuming that you want to drop the data in column Q after the
last row containing data. This will copy the contents of the active
cell to the end of column Q

Sub copy4()
Dim CopyTo As Range
Dim CopyFrom As Range
Set CopyTo = Range("Q1").End(xlUp)
Set CopyFrom = ActiveCell
CopyTo.Offset(1, 0).Value = CopyFrom.Value

End Sub



Thanks, but it does the same thing as my macro, which is: it overwrites the
previous entry rather than append the second item after the first.

JMB

selecting relative ranges
 
Try:

Sub Copy4()
Selection.Copy Range("Q" & Rows.Count).End(xlUp)(2, 1).Resize(4, 1)
End Sub

Assuming your list will not fill all the way to the bottom of the
spreadsheet it goes to the last row of Column Q and Ctrl-Up to find the last
cell with data in it.

One thing you might change is Selection.Copy to Range("A1").Copy (or
whatever the cell address is - or name the cell and use
Range("NamedRange").Copy).

Chip has a brief discussion on referencing cells in ranges here
http://www.cpearson.com/Excel/cells.htm



"John Br" wrote:

I'm new to macros and I recorded the following macro in an attempt to learn
how to append items to an ever growing list. I am attempting append 4 copies
of a cell to the end of a column list. I thought I could get to the first
blank cell at the end of the list by going to a blank cell above the list and
selecting "End, Down" twice and then Down. This works fine the first time,
but when I repeat it, the last entry is overwritten. I don't know how to get
the range statement to not be Q8:Q11, but rather a relative address.

Any help would be appreciated.

Sub Copy4()
Selection.Copy
Application.Goto Reference:="R1C17"
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("Q8:Q11").Select
ActiveSheet.Paste
End Sub



All times are GMT +1. The time now is 06:03 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com