Где-то в Листе под названием Лист 2 у меня есть следующее:Щелкните для изображения
Он использует функцию TEXTJOIN для объединения значений в столбце A. Строка в B100 является переменной S (см. Код).
Я пытаюсь использовать это в качестве входных данных для метода в моем макросе. Ниже приведен фрагмент кода из модуля:
Dim ListofSheets, WorkingSheet As Worksheet
Dim C0, C1 As Range
Dim S As String
Dim WholeRange As Range
Set ListofSheets = Sheets("Sheet2")
...
Set C0 = WorkingSheet.Range(PanelColumn & StartingRow & ":" & PanelColumn & lRow)
Set C1 = WorkingSheet.Range(LoadCaseColumn & StartingRow & ":" & LoadCaseColumn & lRow)
S = ListofSheets.Cells(100, 2).Value
Set WholeRange = Union(S)
WholeRange.Copy
End Sub
C0 и C1 рассчитываются в коде и являются следующими диапазонами:
C0= C7:C310
C1= D7:D310
При запуске приведенного выше кода в строке Set WholeRange = Union(S)
ошибка с сообщением «Ошибка компиляции: несоответствие типов»
Я пытался Set WholeRange = Union(C0, C1)
который работает успешно, но я не хочу использовать это, поскольку на самом деле есть больше переменных, которые можно выбрать.
У меня вопрос, почему строка может быть передана в качестве параметра, и как я могу исправить проблему?
NB: у меня более 2 диапазонов в коде, который здесь не показан. Сценарий решает, какие диапазоны использовать. Поскольку необходимо ввести более 2 диапазонов, я использую метод Union
вместо метода Range