Excel VBA - выбрать несколько столбцов не в последовательном порядке - PullRequest
13 голосов
/ 17 января 2012

Я бы хотел выбрать несколько столбцов.

Например. Я хочу select column a, b, d, e, g, h

Я пробовал:

Columns("A, B, D, E, G, H").select

Я получаю Ошибка Сообщение: Type mismatch.

Ответы [ 5 ]

28 голосов
/ 17 января 2012

Range("A:B,D:E,G:H").Select может помочь

Редактировать заметку: я только что видел, что вы использовали другую последовательность столбцов, я обновил свой ответ

18 голосов
/ 17 января 2012

Некоторые вещи в моей голове.

Метод 1.

Application.Union(Range("a1"), Range("b1"), Range("d1"), Range("e1"), Range("g1"), Range("h1")).EntireColumn.Select

Метод 2.

Range("a1,b1,d1,e1,g1,h1").EntireColumn.Select

Метод 3.

Application.Union(Columns("a"), Columns("b"), Columns("d"), Columns("e"), Columns("g"), Columns("h")).Select
1 голос
/ 04 декабря 2016

Некоторый код выглядит немного сложным для меня. Это очень простой код для выбора только используемых строк в двух смежных столбцах D и H. Предполагается, что столбцы имеют неодинаковую длину и, следовательно, более гибкие, чем столбцы одинаковой длины.

Как вы, скорее всего, догадались 4 = столбец D и 8 = столбец H

Dim dlastRow As Long
Dim hlastRow As Long

dlastRow = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
hlastRow = ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
Range("D2:D" & dlastRow & ",H2:H" & hlastRow).Select

Надеюсь, вы найдете полезным - НЕ ЗАБЫВАЙТЕ, ЧТО СОММА ДО ВТОРОЙ КОЛОННЫ, КАК Я СДЕЛАЛ, ИЛИ БУДЕТ БОМБА !!

0 голосов
/ 08 марта 2018

Как записанный макрос.

range("A:A, B:B, D:D, E:E, G:G, H:H").select
0 голосов
/ 07 января 2016

Работая над проектом, я застрял на некоторое время над этой концепцией - в итоге я получил ответ, аналогичный методу 1 @GSerg, который отлично работал.По сути, я определил два диапазона формул (используя несколько переменных), а затем использовал концепцию объединения.Мой пример взят из более крупного проекта, над которым я работаю, но, надеюсь, часть кода ниже может помочь другим людям, которые могут не знать, как использовать концепцию Union в сочетании с определенными диапазонами и переменными.Я не включил весь код, потому что на данный момент он довольно длинный - если кто-то хочет большего понимания, не стесняйтесь, дайте мне знать.

Сначала я объявил все свои переменные как Public

Затем яопределил / установил каждую переменную

Наконец, я установил новую переменную «SelectRanges» как объединение между двумя другими FormulaRanges

Public r As Long
Public c As Long
Public d As Long
Public FormulaRange3 As Range
Public FormulaRange4 As Range
Public SelectRanges As Range

With Sheet8




  c = pvt.DataBodyRange.Columns.Count + 1

  d = 3

  r = .Cells(.Rows.Count, 1).End(xlUp).Row

Set FormulaRange3 = .Range(.Cells(d, c + 2), .Cells(r - 1, c + 2))
    FormulaRange3.NumberFormat = "0"
    Set FormulaRange4 = .Range(.Cells(d, c + c + 2), .Cells(r - 1, c + c + 2))
    FormulaRange4.NumberFormat = "0"
    Set SelectRanges = Union(FormulaRange3, FormulaRange4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...