根据动态数字复制单元格

copy cells based on a dynamic number

所以我正在做一个更大的项目,但我遇到了困难。现在我有一个项目列表,我需要做的是将它们从一个 sheet 复制并粘贴到另一个,但它需要有一个偏移量。

http://i.imgur.com/C8RLvSF.jpg

所以我需要做的是代码查看监管名称并将其与另一个 sheet 匹配。然后在 sheet 中,它具有要在键下传递的值。我可以复制这些值并将其循环 x 次,但是如何获取循环数以匹配数据集中的特定字段?

第二件事是网络单位名称和监管名称被复制并排序后,我如何复制国家字段代码的关键字?我可以将该 table 值命名为变量吗?

Sub Main()
 Dim LastRow As Long
 Dim LR As Long
 Dim I as long
 LastRow = Sheet1.Cells.Find(What:="*", LookIn:=xlValues, SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

For I= 1 to 'Dynamic range from key count'
    Sheet8.Range(Cells(2, 1), Cells(LastRow, 3)).Copy Destination:=Sheet1.Range("ALR:CLR" & LastRow)
    LR=Range("B" & Rows.Count).End(xlUp).Value
Next I   
 'autosort sub'

End Sub

如果能帮助解决这个问题,我们将不胜感激。

我无法真正将您的代码转录为工作示例,因为已经删节了太多内容,但我相信我理解您的要求。下面是一些抽象的例子。

Sheet1 中的字段列表从 K5 开始,这会将值存储到数组中。

Dim vFLDs As Variant
With Sheet1
    vFLDs = .Range(.Range("K5"), .Range("K5").End(xlDown))
End With

您不必循环复制 reglatory name (sp?) 数据,只需将目标扩展到 vFLDs 内的行数。

Sheet8.Range(Cells(2, 1), Cells(LastRow, 3)).Copy _
  Destination:=Sheet1.Range("ALR:CLR" & LastRow).Resize(UBound(vFLDs), 1)

最后,将vFLDs中的值转移到最后一列。

Sheet1.Range(<the next empty column> & LastRow).Resize(UBound(vFLDs), 1) = vFLDs
Set rngSource = Worksheets("Data We Pull From").Range("A2:A12")
Set rngTarget = Worksheets("Finished Product").Range("A2")
Set rngList = Worksheets("How Much We Need to Offset By").Range("A1:A12")

For Each tmpCell In rngSource
    rngTarget.Resize(12, 3).Value = tmpCell.Resize(1, 3).Value
    rngTarget.Offset(, 3).Resize(12).Value = rngList.Value
    Set rngTarget = rngTarget.Offset(12)
Next tmpCell