Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 按时间顺序将多列复制到另一张工作表的单个列中_Excel_Vba - Fatal编程技术网

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