使用VBA在Excel中复制并粘贴多个工作表

我正在使用下面的代码遍历所有我的工作表复制和粘贴所有相同的值。

麻烦的是我的代码只将更改应用到活动工作表。

Sub Button4_Click() Dim WS_Count As Integer Dim I As Integer WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 1 To WS_Count Range("C10").Select Selection.Copy Range("C11:C300").Select ActiveSheet.Paste Range("C10").Select Next I End Sub 

如何configuration我的代码,以便将其应用于循环中的所有工作表?

谢谢

无需select任何东西,或使用计数器 – 只需使用工作表variables和For Each循环遍历工作表。 在这种情况下,也不需要select任何东西,甚至不需要使用复制/粘贴命令 – 你可以直接赋值。 见下文:

 Sub Button4_Click() Dim wsVar As Worksheet For Each wsVar In ThisWorkbook.Sheets With wsVar .Range("C11:C300").Value = .Range("C10").Value End With Next wsVar End Sub 

编辑:我没有/不知道你到底在做什么,所以很难写一个例子。

此代码应将 Sheet 1!C10中的值复制到工作簿中每张工作表的C11:C300范围内。 (包括表1本身)。 我还没有testing过。

 Sub Button4_Click() Dim WS_Count As Integer Dim I As Integer WS_Count = ActiveWorkbook.Worksheets.Count Dim Source As Range Set Source = ThisWorkbook.Worksheets(1).Range("C10") ' Begin the loop. For I = 1 To WS_Count ThisWorkbook.worksheets(i).Select ' just select the sheet Source.Copy Range("C11:C300").Select ActiveSheet.Paste Next I End Sub 

select这样的工作表和单元格可以很好地工作,但使用工作表对象可以更容易。

例如:

 Dim A_Sheet As Worksheet: Set A_Sheet = ThisWorkbook.Worksheets("Sheet1") A_Sheet.Cells(1,1).Value = "Example" ' set Sheet1!A1 to "Example" A_Sheet1.Range("A1").Value = "Example" ' another way of doing it 

它更容易一点,因为您可以访问任何表单上的数据,而不必先select它。