Vba Excel 2010-范围类的选择方法失败
我要运行以下vba代码: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
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”)
上添加监视。并尽量避免使用。选择可获得更干净的代码