Vba Excel 2010-范围类的选择方法失败

Vba Excel 2010-范围类的选择方法失败,vba,excel,excel-2010,Vba,Excel,Excel 2010,我要运行以下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.Wor

我要运行以下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
但是,我得到了错误:
运行时错误1004:范围类的Select方法失败

有什么建议我做错了什么吗


谢谢你的回复

你不能使用那样的选择方法

wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it!
您应该激活工作簿,然后选择工作表和范围,如下所示:

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

你不能用那样的选择方法

wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it!
您应该激活工作簿,然后选择工作表和范围,如下所示:

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

你不能用那样的选择方法

wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it!
您应该激活工作簿,然后选择工作表和范围,如下所示:

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

你不能用那样的选择方法

wb.Worksheets(s).Range("A:A").Select ' ERROR: here I get it!
您应该激活工作簿,然后选择工作表和范围,如下所示:

wb.Activate
Worksheets(s).Select
Range("A:A").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
 ' [...]
s=2至张的
。计数

ActiveWorkbook.Worksheets.Activate'您不能在不在前台的工作表中选择单元格或区域。相反,您必须事先激活图纸,将其置于前台。所以你应该加上

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
 ' [...]
s=2至张的
。计数

ActiveWorkbook.Worksheets.Activate'您不能在不在前台的工作表中选择单元格或区域。相反,您必须事先激活图纸,将其置于前台。所以你应该加上

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
 ' [...]
s=2至张的
。计数

ActiveWorkbook.Worksheets.Activate'您不能在不在前台的工作表中选择单元格或区域。相反,您必须事先激活图纸,将其置于前台。所以你应该加上

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
 ' [...]
s=2至张的
。计数

ActiveWorkbook.Worksheets(s).Activate'您可能希望看到“尝试逐步调试”,并在
wb.Worksheets.Range(“A:A”)
上添加监视。并尽量避免使用
。选择
以获得更干净的代码您可能希望看到的代码尝试逐步调试,并在
wb.worksheets.Range(“a:a”)
上添加监视。并尽量避免使用
。选择
以获得更干净的代码您可能希望看到的代码尝试逐步调试,并在
wb.worksheets.Range(“a:a”)
上添加监视。并尽量避免使用
。选择
以获得更干净的代码您可能希望看到的代码尝试逐步调试,并在
wb.worksheets.Range(“a:a”)
上添加监视。并尽量避免使用
。选择
可获得更干净的代码