У меня есть этот код, целью которого является получение всех возможных комбинаций в зависимости от фильтров, выбранных пользователем.В столбцах от L до P находятся выбранные фильтры (в зависимости от фильтра они могут идти от 1 до 12), а диапазон от V7 до Z7 - это место, где я хочу отображать комбинации.
На других аналогичныхвопросы с той же ошибкой, основной причиной является тип переменной "long", но я уже использую его, как они предложили.
Columns("V:Z").Select
Selection.ClearContents
Dim c1() As Variant
Dim c2() As Variant
Dim c3() As Variant
Dim c4() As Variant
Dim c5() As Variant
Dim out() As Variant
Dim l As Long, m As Long, n As Long, o As Long, p As Long, q As Long
Dim col1 As Range
Dim col2 As Range
Dim col3 As Range
Dim col4 As Range
Dim col5 As Range
Dim out1 As Range
Set col1 = Range("L7", Range("L7").End(xlDown))
Set col2 = Range("M7", Range("M7").End(xlDown))
Set col3 = Range("N7", Range("N7").End(xlDown))
Set col4 = Range("O7", Range("O7").End(xlDown))
Set col5 = Range("P7", Range("P7").End(xlDown))
c1 = col1
c2 = col2
c3 = col3
c4 = col4
c5 = col5
'Here is where I get the error
Set out1 = Range("V7", Range("Z7").Offset(UBound(c1) * UBound(c2) * UBound(c3) * UBound(c4) * UBound(c5)))
out = out1
l = 1
m = 1
n = 1
o = 1
p = 1
q = 1
Do While l <= UBound(c1)
Do While m <= UBound(c2)
Do While n <= UBound(c3)
Do While o <= UBound(c4)
Do While p <= UBound(c5)
out(q, 1) = c1(l, 1)
out(q, 2) = c2(m, 1)
out(q, 3) = c3(n, 1)
out(q, 4) = c4(o, 1)
out(q, 5) = c5(p, 1)
q = q + 1
p = p + 1
Loop
p = 1
o = o + 1
Loop
o = 1
n = n + 1
Loop
n = 1
m = m + 1
Loop
m = 1
l = l + 1
Loop
out1.Value = out