View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Select noncontiguous multiple columns by column number?

Another way just for curiosity, but I'd go with Leo's

Sub MultiCol()
Dim bAdj As Boolean
Dim i As Long
Dim sAddr As String
Dim rng As Range
Dim varr

varr = Array(1, 5, 8, 9, 10, 12) ' OP's
'varr = Array(2, 10, 27, 53, 105, 256) 'another test

sAddr = "C["
For i = LBound(varr) To UBound(varr) - 1
'ought union later if any adjacent columns
If varr(i + 1) = varr(i) + 1 Then bAdj = True

'offset from Col-1 so subtract 1
sAddr = sAddr & varr(i) - 1 & "],C["
Next
sAddr = sAddr & CStr((varr(UBound(varr)) - 1)) & "]"

sAddr = Application.ConvertFormula(sAddr, xlR1C1, xlA1, , Range("a1"))

If bAdj = True Then
Set rng = Union(Range(sAddr), Range(sAddr))
Else
Set rng = Range(sAddr)
End If

rng.Select

Debug.Print rng.Address(0, 0)

End Sub

This would fail with over 36 3-digit column numbers due to address length
limit.

Regards,
Peter T

"c mateland" wrote in message
oups.com...
Excel 2003

What is the syntax for selecting multiple noncontiguous columns using
column numbers instead of letters? Example, I only know the column
numbers I want selected are 3, 5, 8-10, and 12.

Thanks.