VBA:从包含单元格粘贴范围中的值的所有工作表中

我是VBA的全新人物,也是我自己学习的。 我想在一个单元格中键入数字的代码(E4,最后一个工作表),并运行该macros时,search所有匹配该单元格F2中的数字的工作表,然后为每个匹配数字的工作表,复制范围(这是一个列),然后将所有列粘贴到一个新的工作表(最后添加)。 我以不同的方式尝试下面的一些代码,有时工作,有时不工作。 除了其他问题,下面的代码的问题是,它的工作时,只是从一个发现复制一列。 如果有一个更好,更优雅的方式来写这个(并使其工作)您的帮助表示赞赏。

Sub abc() Dim wscount As Integer Dim wb As Workbook Set wb = ActiveWorkbook wscount = wb.Worksheets.Count k = 1 j = 1 If Worksheets(k).Range("F2").Value = Worksheets(wscount).Range("E4").Value Then Worksheets(wscount + 1).Range(Cells(1, 1 + j), Cells(100, 1 + j)).Value = Worksheets(k).Range("F1:F100").Value Worksheets(wscount + 1).Range(Cells(1, 1 + j), Cells(100, 1 + j)) = Worksheets(k).Range("F1:F100").Value j = j + 1 End If End Sub 

你没有添加新的工作表,而且你也没有在工作表之间循环。 这是一个办法:

 Sub abc() Dim wscount As Integer: wscount = Worksheets.Count Dim j As Long, k As Long Worksheets.Add After:=Worksheets(wscount) For k = 1 To wscount - 1 If Worksheets(k).Range("F2").value = Worksheets(wscount).Range("E4").value Then j = j + 1 Worksheets(wscount + 1).Columns(j).value = Worksheets(k).Columns("F").value End If Next End Sub