Excel 按时间顺序将多列复制到另一张工作表的单个列中
我已经为此查找了一些伪代码,但找不到。任何帮助都将不胜感激。基本上,我想采集以下样本数据:Excel 按时间顺序将多列复制到另一张工作表的单个列中,excel,vba,Excel,Vba,我已经为此查找了一些伪代码,但找不到。任何帮助都将不胜感激。基本上,我想采集以下样本数据: 1 A 2 B 3 C 4 D 5 E 6 F 并将其复制到新的工作表中,如下所示: 1 A 2 B 3 C 4 D 5 E 6 F 根据你的照片,我们正在复制工作表中的所有内容。这将适用于这种情况。如果是子集,请尝试修改rngSource以满足您的需要: Sub FlattenAndCopy() Dim wsSource As Excel.Worksheet
1 A 2 B 3 C
4 D 5 E 6 F
并将其复制到新的工作表中,如下所示:
1 A
2 B
3 C
4 D
5 E
6 F
根据你的照片,我们正在复制工作表中的所有内容。这将适用于这种情况。如果是子集,请尝试修改rngSource以满足您的需要:
Sub FlattenAndCopy()
Dim wsSource As Excel.Worksheet
Dim rngSource As Excel.Range
Dim varSource As Variant
Dim wsTarget As Excel.Worksheet
Dim SourceCount As Long
Dim varTarget() As Variant
Dim i As Long, j As Long
Set wsSource = ActiveSheet
Set rngSource = wsSource.UsedRange
varSource = rngSource.Value
SourceCount = rngSource.Cells.Count
ReDim varTarget(1 To SourceCount)
For i = LBound(varSource, 1) To UBound(varSource, 1)
For j = LBound(varSource, 2) To UBound(varSource, 2)
varTarget((i - 1) * (UBound(varSource, 2)) + j) = varSource(i, j)
Next j
Next i
Set wsTarget = wsSource.Parent.Worksheets.Add
wsTarget.Cells(1).Resize(SourceCount, 1) = Application.WorksheetFunction.Transpose(varTarget)
End Sub