根据动态数字复制单元格
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
所以我正在做一个更大的项目,但我遇到了困难。现在我有一个项目列表,我需要做的是将它们从一个 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