我可以使用循环来命名范围并使用它们相对于另一个范围的位置吗?

时间:2019-12-16 23:32:15

标签: excel loops

所以我不确定这是否可以解决,我会尽力解释。所以我在布尔值的sht1上有一个range(U5:AB5),“是”“否”。在sht2上,我有一个范围(A1:V12),该范围由U:AB范围中的一列使用。我遇到一个以上的“是”的情况,因为它需要自己的A1:V12范围,但低于另一个范围。我试图弄清楚字典或集合将如何使用它,但无法引用字典/集合中的范围。我试图声明一个在循环内的范围变量,但是它说它需要一个常量而不是一个动态名称,例如:

Sub test()

Dim this As Workbook
Dim tbo As Worksheet
Dim model As Worksheet
Dim rng1 As Range
Dim lrow As Long
Dim lcol As Long
Dim myColl As New Collection
Dim i As Long
Dim enginetype As Range
Dim erng As Range


Set this = ThisWorkbook
Set tbo = this.Sheets("TBO Engines (2)")
Set model = this.Sheets("Full Model")
Set rng1 = tbo.Range("A1:V12")
Set erng = model.Range("U5:AB5")
lrow = rng1.Rows.Count
lcol = erng.Columns.Count
i = 1

For i = 1 To lcol Step 1
    If erng.Cells(i).Value = "YES" Then
    If i <> 1 Then
        Dim rng(i) As Range
        Set rng(i) = rng(i - 1).Offset(lcol + 2, 0)
        rng(i - 1).Copy
        rng(i).PasteSpecial xlPasteAll
        Set enginetype = erng.Cells(i).Offset(-2, 0).Value
        rng(i).Cells(1, 1).Value = enginetype.Value
    End If
    End If
Next i

End Sub

基本上,我希望它是第一个“是”的rng1,然后是rng2,该范围是相对于第二个“是”的rng1范围而言的范围,rng3相对于rng2的范围,等等。最简单的解决方法将不胜感激。另外,我不确定我的解释程度如何,所以如果需要澄清,请告诉我。

0 个答案:

没有答案