根据动态数字复制单元格

时间:2015-01-09 20:47:10

标签: excel-vba vba excel

所以我正在开展一个更大的项目,而且我已经碰壁了。现在我有一个项目列表,我需要做的是从一张纸上复制它们并将它们粘贴到另一张纸上,但它需要有一个偏移量。

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

所以我需要发生的是代码查看了reglatory名称并将其与另一个工作表匹配。然后在该表中,它具有要在键下传递的值。我可以复制值并将其循环为x次,但是如何获取循环数以匹配数据集中的特定字段?

第二件事是,一旦网络单元名称和规则名称被复制并排序,我该如何复制国家字段字段代码的密钥?我可以将该表值命名为变量吗?

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

非常感谢帮助解决这个问题的任何帮助。

2 个答案:

答案 0 :(得分:0)

我无法将您的代码转录为正常工作的样本,因为有太多的代码已被编辑但我相信我理解您的要求。以下是一些抽象的例子。

使用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

答案 1 :(得分:0)

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