Союз не набирает все диапазоны - PullRequest
1 голос
/ 30 марта 2019

У меня проблемы с Союзом, не работающим в большом макросе.Предполагается, что он объединит несколько диапазонов, но, похоже, только подберет первый диапазон.Чтобы помочь изолировать проблему, я сократил весь код до этого:


Dim copiedrange As Range
Dim SrcWB As Workbook
Dim SrcWS As Worksheet

Set SrcWB = Workbooks("all-euro-data-2018-2019 (1)")
Set SrcWS = SrcWB.Sheets("E1")

i = 1

Set copiedrange = Union(SrcWS.Range("A" & i & ":F" & i), SrcWS.Range("AX" & i), _
SrcWS.Range("AZ" & i), SrcWS.Range("BH" & i & ":BJ" & i))

MsgBox copiedrange.Columns.Count

End Sub

По некоторым причинам количество столбцов возвращается к 6 (от A до F), когда я думаю, что это должно быть выше к счетудля всех остальных диапазонов.Что я пропускаю / ошибаюсь / идиот? ??? 1004 *

Заранее спасибо!

1 Ответ

3 голосов
/ 30 марта 2019

Union работает абсолютно нормально. Например, MsgBox copiedRange.Address возвращает $A$1:$F$1,$AX$1,$AZ$1,$BH$1:$BJ$1.

Вы сталкиваетесь с поведением Range.Columns. Columns.Count возвращает количество столбцов в первой области ($A$1:$F$1).

Из документации Range.Columns:

При применении к объекту Range, выбранному из нескольких областей, это свойство возвращает столбцы только из первой области диапазона. Например, если объект Range имеет две области - A1:B2 и C3:D4 - Selection.Columns.Count возвращает 2, а не 4. Чтобы использовать это свойство в диапазоне, который может содержать выбор из нескольких областей, проверьте Areas.Count определить, содержит ли диапазон более одной области. Если это так, обведите все области диапазона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...