我正在尝试编写一个宏,用于每天(星期一,星期二,星期三,星期四和星期五)从工作表复制表格(颜色,格式等),并在同一天粘贴到工作表(262张)中。 (星期一-星期一等。)工作表名称我在工作表“数据”中拥有的名称。
但是我得到了这个错误:
运行时错误'1004':方法PasteSpecial类范围故障。
这是我的VBA宏:
Sub copy_paste()
For i = 1 To 262
If 1 = i Mod 5 Then
Worksheets("wednesday").Activate
Cells.Select
Application.CutCopyMode = False
Selection.Copy
' This is the problem part of code (said Debugger)
Sheets(Worksheets("Data").Cells(i, 2).Value).Range("A1").PasteSpecial _
Paste:=x1PasteAllUsingSourceTheme, Operation:=x1None _
, SkipBlanks:=False, Transpose:=False
End If
If 2 = i Mod 5 Then
Sheets("thursday").Select
Application.CutCopyMode = False
Selection.Copy
Sheets(Worksheets("Data").Cells(i, 2).Value).Range("A1").PasteSpecial _
Paste:=x1PasteAllUsingSourceTheme, Operation:=x1None _
, SkipBlanks:=False, Transpose:=False
End If
If 3 = i Mod 5 Then
Sheets("friday").Select
Application.CutCopyMode = False
Selection.Copy
Sheets(Worksheets("Data").Cells(i, 2).Value).Range("A1").PasteSpecial _
Paste:=x1PasteAllUsingSourceTheme, Operation:=x1None _
, SkipBlanks:=False, Transpose:=False
End If
If 4 = i Mod 5 Then
Sheets("monday").Select
Application.CutCopyMode = False
Selection.Copy
Sheets(Worksheets("Data").Cells(i, 2).Value).Range("A1").PasteSpecial _
Paste:=x1PasteAllUsingSourceTheme, Operation:=x1None _
, SkipBlanks:=False, Transpose:=False
End If
If 0 = i Mod 5 Then
Sheets("tuesday").Select
Application.CutCopyMode = False
Selection.Copy
Sheets(Worksheets("Data").Cells(i, 2).Value).Range("A1").PasteSpecial _
Paste:=x1PasteAllUsingSourceTheme, Operation:=x1None _
, SkipBlanks:=False, Transpose:=False
End If
Next i
End Sub
答案 0 :(得分:0)
您可以使用Worksheets(“ SheetName”)。Paste方法,而不是Range.PasteSpecial方法。
但是,实际上,如果您实际上要复制所有内容,建议使用完整的工作表副本:
Worksheets("wednesday").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = Worksheets("Data").Cells(i, 2).Value
答案 1 :(得分:0)
我修复了这两个问题后,就可以了。
您的代码中到处都有x1而不是xl。 – Justyna MK
请检查是否应将其设置为Operation:= xlPasteSpecialOperationNone而不是Operation:= x1None – skkakkar