gpt4 book ai didi

vba - 将不同工作表中的列复制到 VBA 中具有 1 个固定列的主工作表中

转载 作者:行者123 更新时间:2023-12-03 03:39:24 24 4
gpt4 key购买 nike

我正在尝试对所有合作伙伴提供的报价进行比较。我制作了一本工作簿,其中所有合作伙伴的报价都添加到不同的工作表中。在这里,第一列对于所有供应商来说都是相同的,即。产品详细信息。报价比较表即。主表应显示所有合作伙伴的报价。

例如。工作簿所有工作表(主工作表以及其他工作表)中的 A 列值是相同的。主工作表中的“B、C...n”列是空白的,而所有其他工作表在 B 列中都有一些值。我需要一个宏来复制工作表 1.B 列中的值并将其粘贴(特殊粘贴)到主工作表中。 B 列。类似地,工作表 2.B 列中的值将粘贴到 Master.Column C 中,并且应对工作簿中的所有其他工作表(工作表 3、4....n)重复粘贴到 Master.Column (D,恩)。

我尝试了以下代码:

Sub Summary()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "Master" Then
ws.Range("C2:C10").Copy
Sheets("Master").Cells(Rows.Count, 3).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End If
Next

Application.ScreenUpdating = True

End Sub

但是,此处的输出会在同一列中一个接一个地粘贴,而不是粘贴到下一个相邻列中。

Output image - stacked

相应的相邻列中需要它。

希望我能清楚地解释要求。请让我知道如何获取主工作表中相邻列中“n”张工作表的 B 列。

如果不使用上述代码也能完成,也可以。

最佳答案

尝试下面的代码:

Sub Summary()

Dim ws As Worksheet
Dim EmptyCol As Long

Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Master" Then
ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row).Copy '<-- copy all values in column B
With Sheets("Master")
EmptyCol = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1
.Range(.Cells(1, EmptyCol), .Cells(1, EmptyCol)).PasteSpecial xlPasteValues
End With
End If
Next
Application.ScreenUpdating = True

End Sub

关于vba - 将不同工作表中的列复制到 VBA 中具有 1 个固定列的主工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42513227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com