如果单元格包含值n,如何创建n个单元格的列,每个单元格包含值n(然后重复另一个单元格)?

时间:2013-04-25 17:52:29

标签: excel-vba formula vba excel

为简单起见,假设我有一个包含5个数字的列,如下所示: -

8
15
8
3
26

我想要做的是创建一个由8个单元格组成的列,其中包含值“8”,然后是包含值“15”的15个单元格,然后是包含值“8”的8个单元格,依此类推。因此,此示例将导致列长度为60个单元格(但是,我的真实列有超过200个数字,并且会产生大约2500个数字的列!)。

这可能吗?它需要一个公式还是一个宏? (我也不是很擅长,我很害怕,如果这是一个明智的话,请道歉。)任何建议都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

试试这个

Public Sub Test()

    PopulateColumn Range("A1"), Range("B1")

End Sub


Public Sub PopulateColumn(ByVal rngSourceStart As Range, ByVal rngTargetStart As Range)

    Dim rngSource As Range
    Dim rngTarget As Range

    Set rngSource = rngSourceStart
    Set rngTarget = rngTargetStart

    Dim iValue As Integer
    Dim i As Integer

    While rngSource.Value <> ""
        iValue = rngSource.Value
        For i = 1 To rngSource.Value
            rngTarget.Value = iValue
            Set rngTarget = rngTarget.Offset(1, 0)
        Next
        Set rngSource = rngSource.Offset(1, 0)
    Wend

End Sub