Excel 2010 – select范围类的方法失败

我想运行以下vba代码:

Sub combineSheets() Dim rngPaste As Range 'range to paste to Dim rngCopy As Range 'range to copy from Dim wb As Excel.Workbook Dim strRange As String 'range in sheets to copy from strRange = "A2:A10" Set rngPaste = ActiveWorkbook.Worksheets("Combined").Range(strRange) 'initial range to paste into Set wb = ActiveWorkbook Dim s As Integer For s = 2 To Sheets.Count 'copy down the value wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it! wb.Worksheets(s).Range("A7").Activate Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove wb.Worksheets(s).Rows("4:4").Select With Selection .HorizontalAlignment = xlGeneral .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With Selection.UnMerge wb.Worksheets(s).Range("B4").Select Selection.Copy wb.Worksheets(s).Range("A5").Select ActiveSheet.Paste wb.Worksheets(s).Range("A6").Select ActiveSheet.Paste wb.Worksheets(s).Range("A7").Select ActiveSheet.Paste wb.Worksheets(s).Range("A8").Select ActiveSheet.Paste wb.Worksheets(s).Range("A9").Select ActiveSheet.Paste wb.Worksheets(s).Range("A10").Select ActiveSheet.Paste 'delete the first 4 rows wb.Worksheets(s).Rows("1:4").Select Selection.Delete Shift:=xlUp '------------------- 'copy to new sheet Set rngCopy = ActiveWorkbook.Worksheets(s).Range(strRange) 'copy from same range in each sheet rngPaste.Value = rngCopy.Value 'copy values into first sheet Set rngPaste = rngPaste.Offset(10, 0) 'moves paste range for next copy Next s End Sub 

但是,我得到错误: Run-time error 1004: Select method of Range class failed

任何build议我做错了什么?

我感谢您的回复!

您不能select不在前景中的工作表中的单元格或范围。 相反,您必须事先启动纸张,将纸张放入前台。 所以你应该添加

 ActiveWorkbook.Worksheets(s).Activate 

作为for循环的第一行。 喜欢这个:

 For s = 2 To Sheets.Count ActiveWorkbook.Worksheets(s).Activate ' <--- add the line here 'copy down the value wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it! wb.Worksheets(s).Range("A7").Activate Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove wb.Worksheets(s).Rows("4:4").Select ' [...] 

你不能使用这样的select方法

 wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it! 

您应该激活工作簿,然后select工作表和范围如下所示:

 wb.Activate Worksheets(s).Select Range("A:A").Select