ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Excel 2007 - Macro (VB) code for arrow down & arrow up (https://www.excelbanter.com/excel-discussion-misc-queries/218128-excel-2007-macro-vbulletin-code-arrow-down-arrow-up.html)

Grindy

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
Using Excel's "Record" macro ignores arrow movements. Could someone please
give me the macro code for down one cell and up one cell.
Thanks

Ed Ferrero[_3_]

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
Hi Grindy,

To go up one cell...

Sub OneUp()
If ActiveCell.Row 1 Then
ActiveCell.Offset(-1, 0).Select
End If
End Sub

Going down use...

ActiveCell.Offset(1, 0).Select

Ed Ferrero
www.edferrero.com

Grindy

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
Thanks for the quick response Ed. A related question...
What is the purpose of the "If/Then" part of your code, ie.

If ActiveCell.Row 1 Then

Just trying to learn why it is needed.

Thanks again,
bob

"Ed Ferrero" wrote:

Hi Grindy,

To go up one cell...

Sub OneUp()
If ActiveCell.Row 1 Then
ActiveCell.Offset(-1, 0).Select
End If
End Sub

Going down use...

ActiveCell.Offset(1, 0).Select

Ed Ferrero
www.edferrero.com


Ed Ferrero[_3_]

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
Hi Grindy,

Thanks for the quick response Ed. A related question...
What is the purpose of the "If/Then" part of your code, ie.

If ActiveCell.Row 1 Then

Just trying to learn why it is needed.


If the active cell is in row 1, going up one cell will go to row zero, which
does not exist - you will get an error.

Ed Ferrero
www.edferrero.com


Rick Rothstein

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
If the ActiveCell is on Row 1, you can't go up (the Offset function would
generate an error if you tried)... the If test makes sure the code doesn't
try. By the way, it might not be clear from Ed's posting, but you don't need
that test for the OneDown macro, but you should test to make sure you aren't
at the bottom of the worksheet...

Sub OneDown()
If ActiveCell.Row < ActiveSheet.Rows.Count Then
ActiveCell.Offset(1, 0).Select
End If
End Sub

--
Rick (MVP - Excel)


"Grindy" wrote in message
...
Thanks for the quick response Ed. A related question...
What is the purpose of the "If/Then" part of your code, ie.

If ActiveCell.Row 1 Then

Just trying to learn why it is needed.

Thanks again,
bob

"Ed Ferrero" wrote:

Hi Grindy,

To go up one cell...

Sub OneUp()
If ActiveCell.Row 1 Then
ActiveCell.Offset(-1, 0).Select
End If
End Sub

Going down use...

ActiveCell.Offset(1, 0).Select

Ed Ferrero
www.edferrero.com



Grindy

Excel 2007 - Macro (VB) code for arrow down & arrow up
 
Wow, you 2 are great!
I completly understand now, and really appreciate both of you taking the
time to explain this stuff to a VB newbee...
I totally get it.... :)
bob

"Rick Rothstein" wrote:

If the ActiveCell is on Row 1, you can't go up (the Offset function would
generate an error if you tried)... the If test makes sure the code doesn't
try. By the way, it might not be clear from Ed's posting, but you don't need
that test for the OneDown macro, but you should test to make sure you aren't
at the bottom of the worksheet...

Sub OneDown()
If ActiveCell.Row < ActiveSheet.Rows.Count Then
ActiveCell.Offset(1, 0).Select
End If
End Sub

--
Rick (MVP - Excel)


"Grindy" wrote in message
...
Thanks for the quick response Ed. A related question...
What is the purpose of the "If/Then" part of your code, ie.

If ActiveCell.Row 1 Then

Just trying to learn why it is needed.

Thanks again,
bob

"Ed Ferrero" wrote:

Hi Grindy,

To go up one cell...

Sub OneUp()
If ActiveCell.Row 1 Then
ActiveCell.Offset(-1, 0).Select
End If
End Sub

Going down use...

ActiveCell.Offset(1, 0).Select

Ed Ferrero
www.edferrero.com





All times are GMT +1. The time now is 09:12 PM.

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