在VBA中创建动态范围

在VBA中创建动态范围,vba,Vba,显然,我的代码中还没有必要的循环,但我想创建一个从第3行开始的循环(“b3:gs3”),并以以下递归方式对其进行更新: Range("b3:gs3") Range("b6:gs6") Range("b9:gs9") . . . Range("b720:gs720") 我可以对循环进行编码,但很难对范围值的这种变化进行编码 非常感谢您的帮助 罗恩 子框() Dim Curcell 3 As范围 对于表格(“表格2”).范围(“b3:gs3”).单元格中的每个curCell3,这就是问题所在 活动

显然,我的代码中还没有必要的循环,但我想创建一个从第3行开始的循环(“b3:gs3”),并以以下递归方式对其进行更新:

Range("b3:gs3")
Range("b6:gs6")
Range("b9:gs9")
.
.
.
Range("b720:gs720")
我可以对循环进行编码,但很难对范围值的这种变化进行编码

非常感谢您的帮助

罗恩

子框()
Dim Curcell 3 As范围
对于表格(“表格2”).范围(“b3:gs3”).单元格中的每个curCell3,这就是问题所在
活动工作簿。工作表(“6”)。激活
范围(“B1”)。选择
当ActiveCell.Value curCell3.Value
ActiveCell.Offset(0,1)。选择
环
ActiveCell.Offset(44,0)。选择
ActiveCell,收到
活动工作簿。工作表(“工作表2”)。激活
curCell3.选择
ActiveCell.Offset(1,0)。选择
ActiveCell.PasteSpecial Paste:=xlPasteValues
下一个Curcell 3
活动工作簿。工作表(“6”)。激活
行(“3:3”)。删除
ActiveCell.Offset(2,-199)。选择
端接头

不清楚您最终想要实现什么……我想知道如何对范围进行编码。我希望保持行不变,但更改列。例如,如果范围(x,y),其中x=b3,y=gs3,我希望下一个循环返回x1=b6,y1=gs6,下一个循环返回x2=b9,y2=gs9,等等哇,这太不可思议了。非常感谢
Sub Box()

    Dim curCell3 As Range

    For Each curCell3 In Sheets("Sheet 2").Range("b3:gs3").Cells  'This is the problem

    ActiveWorkbook.Sheets("6").Activate
    Range("B1").Select

    Do While ActiveCell.Value <> curCell3.Value
        ActiveCell.Offset(0, 1).Select
    Loop

            ActiveCell.Offset(44, 0).Select
            ActiveCell.Copy
            ActiveWorkbook.Sheets("Sheet 2").Activate
            curCell3.Select
            ActiveCell.Offset(1, 0).Select
            ActiveCell.PasteSpecial Paste:=xlPasteValues

    Next curCell3

ActiveWorkbook.Sheets("6").Activate
Rows("3:3").Delete
ActiveCell.Offset(2, -199).Select

End Sub
Sub Box()

    Dim curCell3 As Range
    Dim rw As Long, f As Range, rngSrch As Range

    Set rngSrch = ActiveWorkbook.Sheets("6").UsedRange.Columns(2)

    For rw = 3 To 720 Step 3

        For Each curCell3 In Sheets("Sheet 2"). _
             Range("b" & rw & ":gs" & rw).Cells

            Set f = rngSrch.Find(curCell3.Value, , xlValues, xlWhole)
            If Not f Is Nothing Then
                curCell3.Offset(0, 1).Value = f.Offset(44, 0).Value
            End If

        Next curCell3

    Next rw

End Sub