Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Experts,
Why do I know I'm going to be embarrassed by the answer to my query...? Code takes me to the first empty cell to the right of the E column data. I don't want to go past column 16 (col. P) In a test row, i = 18 so there is an if statement to only go to 16 IF i 15. However it takes me to column U which is 21. Works just fine on other rows less than 16 but if i = 16 it goes to 21 also. Option Explicit Sub GoRT() Dim i As Integer If Not Intersect(ActiveCell, Range("E6:E20")) Is Nothing Then i = ActiveCell.End(xlToRight).Column ' Msgbox to test i returns 18 on a test row MsgBox i ' i is 16 so why does this if statement ' take me to column U which is 21 If i 16 Then ActiveCell.Offset(0, 16).Select Exit Sub End If ActiveCell.Offset(0, i - 4).Select End If End Sub Thanks, Howard |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Saturday, February 2, 2013 12:08:19 PM UTC-8, Howard wrote:
Hi Experts, Why do I know I'm going to be embarrassed by the answer to my query...? Code takes me to the first empty cell to the right of the E column data. I don't want to go past column 16 (col. P) In a test row, i = 18 so there is an if statement to only go to 16 IF i 15. However it takes me to column U which is 21. Works just fine on other rows less than 16 but if i = 16 it goes to 21 also. Option Explicit Sub GoRT() Dim i As Integer If Not Intersect(ActiveCell, Range("E6:E20")) Is Nothing Then i = ActiveCell.End(xlToRight).Column ' Msgbox to test i returns 18 on a test row MsgBox i ' i is 16 so why does this if statement ' take me to column U which is 21 If i 16 Then ActiveCell.Offset(0, 16).Select Exit Sub End If ActiveCell.Offset(0, i - 4).Select End If End Sub Thanks, Howard This is a typo, 16 should be 15 ' i is 16 so why does this if statement Howard |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Saturday, February 2, 2013 12:08:19 PM UTC-8, Howard wrote:
Hi Experts, Why do I know I'm going to be embarrassed by the answer to my query...? Code takes me to the first empty cell to the right of the E column data. I don't want to go past column 16 (col. P) In a test row, i = 18 so there is an if statement to only go to 16 IF i 15. However it takes me to column U which is 21. Works just fine on other rows less than 16 but if i = 16 it goes to 21 also. Option Explicit Sub GoRT() Dim i As Integer If Not Intersect(ActiveCell, Range("E6:E20")) Is Nothing Then i = ActiveCell.End(xlToRight).Column ' Msgbox to test i returns 18 on a test row MsgBox i ' i is 16 so why does this if statement ' take me to column U which is 21 If i 16 Then ActiveCell.Offset(0, 16).Select Exit Sub End If ActiveCell.Offset(0, i - 4).Select End If End Sub Thanks, Howard Drat!!! Two typos... "If i 16 Then" should be 15 Howard |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Howard,
This code takes you to column 21 because of the line: ActiveCell.Offset(0, 16).Select That line will start from the active cell (which is in column E) and go over 16 columns. Since column E is the 5th column, 16 columns over from the active cell is column 21. To fix, simply change the column offset to: ActiveCell.Offset(0, 12).Select Or you could remove the IF statement altogether and rewrite as: Sub GoRT() Dim i As Integer If Not Intersect(ActiveCell, Range("E6:E20")) Is Nothing Then i = ActiveCell.End(xlToRight).Column i = WorksheetFunction.Min(i, 16) - 4 MsgBox i ActiveCell.Offset(0, i).Select End If End Sub |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Saturday, February 2, 2013 12:08:19 PM UTC-8, Howard wrote:
Hi Experts, Why do I know I'm going to be embarrassed by the answer to my query...? Code takes me to the first empty cell to the right of the E column data. I don't want to go past column 16 (col. P) In a test row, i = 18 so there is an if statement to only go to 16 IF i 15. However it takes me to column U which is 21. Works just fine on other rows less than 16 but if i = 16 it goes to 21 also. Option Explicit Sub GoRT() Dim i As Integer If Not Intersect(ActiveCell, Range("E6:E20")) Is Nothing Then i = ActiveCell.End(xlToRight).Column ' Msgbox to test i returns 18 on a test row MsgBox i ' i is 16 so why does this if statement ' take me to column U which is 21 If i 16 Then ActiveCell.Offset(0, 16).Select Exit Sub End If ActiveCell.Offset(0, i - 4).Select End If End Sub Thanks, Howard Thanks Ben, The 16 + 5 = 21 eluded me. Thanks again. Howard |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Perplexing string manipulation problem | Excel Programming | |||
New to Excel 2007 with a perplexing MACRO question | Excel Discussion (Misc queries) | |||
Perplexing sheets. | Excel Programming | |||
Help with perplexing form problem | Excel Programming |