我必须准备一个简短的宏。 我在工作簿中有多个工作表,我编写了一个宏来从不同的工作簿导入一个范围,但我希望我的宏遍历所有工作表。 我读了很多关于它的内容,但我仍然认为我遗漏了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
答案 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