在所有工作表上运行我的宏

时间:2014-11-08 10:50:46

标签: excel vba

我必须准备一个简短的宏。 我在工作簿中有多个工作表,我编写了一个宏来从不同的工作簿导入一个范围,但我希望我的宏遍历所有工作表。 我读了很多关于它的内容,但我仍然认为我遗漏了的一些基本知识。 有人可以帮我把这个宏放在一个循环中吗?

Sub AddHeader()
    current = ActiveWorkbook.Name
    Range("A1:C96").Select
    Selection.Cut Destination:=Range("A55:C150")
    Windows("MIP_Ordering_Header.xlsx").Activate
    Range("A1:H54").Select
    Selection.Copy
    Windows(current).Activate
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
    Cells(53, 1).Value2 = "Plate Name:" & ActiveSheet.Name
End Sub

1 个答案:

答案 0 :(得分:-1)

我会做类似下面的事情。首先复制范围,然后遍历活动工作簿中的工作表:

Sub AddHeader()

Dim WS_Count As Integer
Dim I As Integer

'first get the data to copy
Windows("MIP_Ordering_Header.xlsx").Activate
Range("A1:H54").Select
Selection.Copy
ActiveWorkbook.Close

'get all the active sheets
WS_Count = ActiveWorkbook.Worksheets.Count

' Begin the loop.
For I = 1 To WS_Count
    'refer to the curent workbook using the "I" variable
    ActiveWorkbook.Worksheets(I).Range("A1").Select
    'the rest of your code...
Next End Sub

编辑:如何使用变量复制粘贴:

Sub CopyPaste()

Dim src1 As Variant
Dim src2 As Variant

src1 = Sheets(1).Range("A1:A2").Value
src2 = Sheets(1).Range("A4:A5").Value

Sheets(1).Range("B1:B2").Value = src1
Sheets(1).Range("B4:B5").Value = src2 End Sub