Excel VBA установить диапазон в виде нескольких столбцов

В настоящее время я пытаюсь назначить несколько столбцов для диапазона. Мне нужно ссылаться на столбцы, используя имя листа и номера столбцов.

dim MyRange as Range
dim StartCol as Integer
set MyRange = [from column StartCol until Startcol+5]

Любой вклад будет высоко ценится...

2 ответа

Решение
Option Explicit
Sub col()
    Dim rngCols As Range, ws As Worksheet, wb As Workbook
    Dim startCol As Integer

    set wb = ThisWorkbook
    set ws = wb.Sheets("MySheet")
    startCol = 1
    With ws
        Set rngCols = .Range(.Cells(1, startCol), .Cells(.Rows.Count, startCol + 5))
    End With
    rngCols.Select
End Sub

Это должно делать то, что вы после. Вам просто нужно изменить переменную startCol, переменную рабочего листа и целое число, которое вы добавляете в startCol.

'
' get the columns of range Rr
' Cols as CSV like   2,4,7   b,d,G   B,D:F,m,P  3,H,J,2
' 3,4,5,6 is C:F   6,8:11,3 is bad => 6,8,3   B,D:F  is 2,4,5,6
'
Function GetRaColl(Rr As Range, ColS$) As Range
   Dim SA$(), LI&, VV&, UB&, URa As Range
   SA = Split(ColS, ",")
   UB = UBound(SA)
   VV = Val(SA(0))
   If VV > 0 Then
      Set URa = Rr.Columns(VV)
   Else
      Set URa = Rr.Columns(SA(LI))
   End If
   ' if more ranges
  For LI = 1 To UBound(SA)
      VV = Val(SA(LI))
      If VV > 0 Then   ' so treats 3:5 as 3  so use C:E or 3,4,5
         Set URa = Union(URa, Rr.Columns(VV))
      Else
         Set URa = Union(URa, Rr.Columns(SA(LI)))
      End If
Next LI
Set GetRaColl = URa
End Function
Другие вопросы по тегам