Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Stack - Fatal编程技术网

在一个excel中堆叠多列

在一个excel中堆叠多列,excel,stack,Excel,Stack,我在一个文件中有来自不同数据源的多张图纸。 我想将每个工作表中A列的数据堆叠到一列中。 没有空行,没有其他困难。 我可以使用记事本,但我更喜欢excel内部的解决方案 我见过类似问题的解决方案,但它们有点不同,它认为是更简单的版本,可以有更简单的解决方案(很容易实现) 如果能得到帮助,我将不胜感激。 Michal这是适合您需要的任务的代码,您只需创建一个名为“output”的新工作表,或更改代码的这一部分以获得所需的名称 Sub stackColumns() Dim wb As Wor

我在一个文件中有来自不同数据源的多张图纸。 我想将每个工作表中A列的数据堆叠到一列中。 没有空行,没有其他困难。 我可以使用记事本,但我更喜欢excel内部的解决方案

我见过类似问题的解决方案,但它们有点不同,它认为是更简单的版本,可以有更简单的解决方案(很容易实现)

如果能得到帮助,我将不胜感激。
Michal

这是适合您需要的任务的代码,您只需创建一个名为“output”的新工作表,或更改代码的这一部分以获得所需的名称

Sub stackColumns()

    Dim wb As Workbook
    Dim recipe As Worksheet

    Set wb = ThisWorkbook
    Set recipe = wb.Worksheets("output")
    recipe.Range("A:C").ClearContents
    recipe.Cells(1, 1).Value = "stacked A-category"
    recipe.Cells(1, 2).Value = "stacked C-category"

    For Each w In wb.Sheets
        If w.Name <> recipe.Name Then
            For i = 2 To WorksheetFunction.Max(w.Cells(w.Rows.Count, 1).End(xlUp).Row, w.Cells(w.Rows.Count, 3).End(xlUp).Row)
                recipe.Cells(recipe.Cells(recipe.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = w.Cells(i, 1).Value
                recipe.Cells(recipe.Cells(recipe.Rows.Count, 2).End(xlUp).Row + 1, 2).Value = w.Cells(i, 3).Value
            Next i
        End If
    Next w

End Sub
子堆栈列()
将wb设置为工作簿
将配方设置为工作表
设置wb=ThisWorkbook
设置配方=wb.工作表(“输出”)
配方.范围(“A:C”).净含量
recipe.Cells(1,1).Value=“堆叠的A类”
配方.单元格(1,2).Value=“堆叠的C类”
对于wb表格中的每个w
如果w.命名配方,则命名
对于工作表function.Max中的i=2(w.Cells(w.Rows.Count,1)。End(xlUp)。Row,w.Cells(w.Rows.Count,3)。End(xlUp)。Row)
recipe.Cells(recipe.Cells(recipe.Rows.Count,1)。End(xlUp)。Row+1,1。Value=w.Cells(i,1)。Value
recipe.Cells(recipe.Cells(recipe.Rows.Count,2)。End(xlUp)。Row+1,2。Value=w.Cells(i,3)。Value
接下来我
如果结束
下一个w
端接头

Hi。我从未使用过这种代码。你能推荐一个能帮助我使用它的在线培训吗?听着,我不知道一个好的基础培训,因为我来自巴西,在学习方面我使用了葡萄牙语教程,但要使用这段代码,你需要转到功能区中的“开发人员”选项卡(如果它不可见,你需要设置为“在文件中可见功能区->选项”),然后输入VBA,单击插入->新建模块,将代码粘贴到白色页面中,该页面将显示并使用F5或功能区中的“播放”按钮执行。。。但首先,您需要调整代码,如果您发布工作簿的屏幕或在excel online中上传一个示例并让我查看,我可以帮助您调整代码。因此,在本例中,我希望堆叠a列(也是C列)中的数据-我的最终目标是找到由countif完成的a&“-”&C合并的次数,但我已经解决了这个问题)所以我只需要将A列和C列堆叠起来,一切都会正常工作。谢谢你的帮助!再看一次,我根据您的工作表调整了代码,您只需要创建一个输出