复制和粘贴循环通过2组范围

时间:2018-05-27 21:20:04

标签: excel excel-vba vba

我正在制作excel表。我有数据条目的标题,我希望将其复制到工作表上的其他位置。标题范围从c3到c122,我打算将它们复制并粘贴在相隔70行的单元格中。以下代码是不够的;我收到错误450(错误的参数数量或无效的属性赋值)。

Option Explicit
Sub Titles()
Dim i As Integer
    Dim n As Integer
    For i = 151 To 8971 Step 70
        For n = 3 To 122 Step 1
            Cells.Value(i, 3) = "c" & n
    Next n
Next i

End Sub

我希望将每个单元格C3:C122中的内容复制到C150,C220,...,C8791中。这是一个好方法吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

Cells.Value(i, 3)上的语法错误它应该是Cells(i, 3).Value 改变它,看看是否一切都按你的意愿运作。

答案 1 :(得分:0)

这里有很多错误。

  1. 不需要双循环。如果代码确实有效,则会在每次Cells.Value(i, 3)
  2. 的迭代中覆盖i 120次
  3. Cells本身就是指活动表上的所有单元格
  4. Cells.Value将单元格值作为变量数组返回,在本例中为1,048,576 x 16,384数组
  5. "c" & n创建一个字符串(例如c3)而非单元格引用
  6. 尝试这样做(请注意,请检查rw的初始值,因为您的帖子150与151之间存在矛盾)

    Sub Demo()
        Dim ws As Worksheet
        Dim rng As Range
        Dim cl As Range
        Dim rw As Long
    
        Set ws = ActiveSheet
        Set rng = ws.Range("C3:C122")
        rw = 151 '<--- check if this is right
    
        For Each cl In rng.Cells
            ws.Cells(rw, 3).Value = cl.Value
            rw = rw + 70
        Next
    End Sub