I have the code below which currently selects a fixed range and hides columns where the value of the cell in row 1 is not blank but is zero.
Range("L1:YF1").Select Selection.EntireColumn.Hidden = False For Each Cell In Selection Count = Count + 1 Next Cell Range("L1").Select For Ch = 1 To Count If ActiveCell.Value <> "" And ActiveCell.Value = 0 Then Selection.EntireColumn.Hidden = True Else End If ActiveCell.Offset(0, 1).Range("$A$1").Select Next ChRange("$K$2").Select
Question is, line 1 selects a fixed Range but I would like to change this to the equivalent of "Shift + Ctrl + End" ie from current cell to the last cell in the row. End Right won't work because there are gaps.
I could go to XFD1 and then do an End Left to determine the last column but how do I then convert that into the range to be selected.
For the second section of the code where I am using ActiveCell.Offset to move across one column at a time. I assume this is the "right" way to do it because I assume that if I did it with "For Each Cell in Selection.... Next Cell" I would end up hiding the whole selection each time. Happy to be corrected on that point.
Open in new window
Note that by using Columns.Count, this is also compatible with pre-2007 versions of Excel, which were limited to 256 columns.