为简单起见,假设我有一列 5 个数字,如下所示:-
8
15
8
3
26
我想要做的是创建一个列,首先由 8 个包含值“8”的单元格组成,然后是 15 个包含值“15”的单元格,然后是 8 个包含值“8”的单元格,依此类推。因此,此示例将导致 60 个单元格的列长度(但是,我的现实生活中的列有超过 200 个数字,并且会产生大约 2500 个数字的列!)。
这可能吗?它需要一个公式还是一个宏?(恐怕我也不是很擅长,所以如果这是一个简单的问题,我很抱歉。)任何建议都非常受欢迎。
Try this
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