在其他单元格中复制单元格x次

时间:2017-10-26 12:10:09

标签: vba excel-vba for-loop excel

我在以下单元格中有一些信息:H3,H4和H5。确切地说:H3包含字母 a ,H4包含 b ,H5包含 c 。现在我想把每个单元格的内容如下:

C11=a,C12=a,C13=a,C14=a,C15=a,C16=a. 

C17=b,C18=b,C19=b,C20=b,C21=b,C22=b. 

C23=b, C24=c,C25=c,C26=c,C27=c,C28=c.

可以观察到我们有6步。

我尝试过以下代码:

For s = 0 To 17
Cells(s + 11, 3).Value = Cells(CInt(3 + (s / 6)), 8)
Next

我的问题是,细胞没有以正确的方式填充,C26,C27,C28也是空的。

谢谢!

3 个答案:

答案 0 :(得分:1)

像这样运行:

Public Sub TestMe()

    Dim s   As Long

    For s = 0 To 17
        Debug.Print Cells(s + 11, 3).Address
        Debug.Print Cells(CInt(3 + (s / 6)), 8).Address
        Cells(s + 11, 3).Value = Cells(CInt(3 + (s / 6)), 8)
    Next s

End Sub

然后按 Ctrl + G 并在即时窗口中查看打印的地址。

答案 1 :(得分:1)

CInt  

执行舍入而不是截断整数

你应该使用Int

For s = 0 To 17
Cells(s + 11, 3).Value = Cells(Int(3 + (s / 6)), 8)
Next

答案 2 :(得分:0)

如果没有VBA,您可以获得相同的结果。

在单元格C11中放入以下公式并向下复制以获得所需的结果

=INDEX($H$3:$H$5,CEILING(ROWS($C$11:C11)/6,1))