将Excel中基于文本的数据从多个表格中列出到Excel表格中的单个列中

我有一个工作簿,在几张不同的工作表上填充了基于文本的数据。 所有表单使用相同的标题,但在列中有不同的文本。 我希望能够在新表单中的所有表单中列出C列中包含的信息。

有没有办法将所有这些数据放到一个列中,而不必从近100张不同的表中复制和过去?

使用VBA,这是一个有效的解决scheme。 你只需要插入一个模块到你的工作簿并运行它。 F11>插入>模块。 复制并粘贴此代码,然后点击播放。

这将使用您在newSheet下定义的任何名称创build一个新的工作表。 然后将每个工作表C行(标题后面)的内容,不pipe你有多less,或者他们的名字是什么,并把它们添加到新的。 如果超过1,000,000行,我可以看到一个问题。除此之外,如果有任何工作表您不想执行此操作,我们会将它们作为例外添加到If语句中的名称。

testing:

Private Sub CopyAllSheetsCol() Dim WS As Worksheet Dim newSheet As String Dim lastRow As Long 'Last Row on source Sheet Dim tRow As Long 'target row newSheet = "Compiled" 'name can be changed here Sheets.Add.Name = newSheet tRow = 2 'Set the target Row to 2, Set the Header Row manually For Each WS In ActiveWorkbook.Worksheets If WS.Name <> newSheet Then 'Making sure we are only working with pre-existing sheets lastRow = Sheets(WS.Name).Range("C2").End(xlDown).Row 'get last row of Column C on each Worksheet For r = 2 To lastRow 'Loop through all rows skipping header Sheets(newSheet).Cells(tRow, "C") = Sheets(WS.Name).Cells(r, "C") 'Copy to newSheet tRow = tRow + 1 'Increment target row by 1 Next r End If Next End Sub 

工作表Sheet1Sheet2中表Sheet 3结果

编辑:感动了解释