Excel VBA:在循环中使用variables来定义当前单元格旁边的Range

WorksheetA中,我有一个名称为Config的列,

我想查找一个特定的值,如果find这个值,从另一个名为WorksheetB的工作表复制相应的configuration(基本上是一个索引/不同configuration的列表)

因此,在WorksheetA中find值“J”,则范围(D20:G31)将等于WorksheetB范围(B15:E26)的值等等,直到WorksheetA中此列中的所有值都被validation。

我明显错误的代码到目前为止是这样的

Public Sub CheckIndex() Sheets("Worksheet_A").Select ' Find the last row of data FinalRow = Cells(Rows.Count, 1).End(xlUp).Row ' Loop through each row For x = 2 To FinalRow ' Decide if to copy based on column C ThisValue = Cells(x, 3).Value ' SinglePath Configuration If ThisValue = "J" Then Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B15:E26").Value ElseIf ThisValue = "C" Then Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B3:E14").Value End If Next x 

结束小组

那么有没有办法在循环中使用variables的值来定义当前位置旁边的范围? 我的代码太糟糕了,我应该对此不好了? jk(我已经知道它不好)

我最近才开始使用VBA,因此我没有几个编写macros的经验。 所以在此先感谢所有的答复

作为@ZATbuild议最终的代码是:

 Public Sub CheckIndex() Sheets("Worksheet_A").Select ' Find the last row of data FinalRow = Cells(Rows.Count, 1).End(xlUp).Row ' Loop through each row For x = 5 To FinalRow ' Decide if to copy based on column C ThisValue = Cells(x, 3).Value ' SinglePath Configuration If ThisValue = "J" Then Worksheets("Worksheet_B").Range("B15:E26").Copy Destination:=Worksheets("Worksheet_A").Range("D" & x) ElseIf ThisValue = "C" Then Worksheets("Worksheet_B").Range("B3:E14").Copy Destination:=Worksheets("Worksheet_A").Range("D" & x)