目前我是第一次使用VBA。
我收到了一个任务,我需要使用VBA在MS Excel中堆叠以下列。
结果应如下所示:
我在网上找到了以下VBA脚本(来源:https://www.extendoffice.com/documents/excel/4233-excel-stack-columns.html):
Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId,
Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
Rng.Copy
Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
执行脚本会导致以下结果
没想到破折号会在“栈底”。
如果有人能告诉我为什么会这样,以及我如何解决这个问题,我将非常感激。
非常感谢提前!
2条答案
按热度按时间vc6uscn91#
迭代列,但不转置粘贴。
mtb9vblg2#
由于您的标记不包含任何版本限制,因此可以使用公式来执行此操作:
或者,如果不想使用表: