与应用程序定义或对象定义的错误混淆

我目前正在编码button,当我试图点击button,我发现问题。 popup消息窗口运行时error 1004,应用程序定义或对象定义的错误。

这里是我的代码:

 Private Sub CommandButton1_Click() Dim s As Single Dim t As Integer Application.ScreenUpdating = False s = Worksheets("Sheet2").Range("J6").Value s = s * 1.1 Worksheets("Sheet2").Range("J6").Value = s Worksheets("Sheet2").Range("K6").Value = 0 Worksheets("Sheet2").Range("L6").Value = Date With ActiveWorkbook.Worksheets("Sheet2").Sort .SortFields.Clear .SortFields.Add Key:=Range("I6"), _ SortOn:=xlSortOnValues, _ Order:=xlAscending, _ DataOption:=xlSortNormal .SetRange Range("F6:L11") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Dim r As Single Dim count As Integer Dim i As Integer count = 6 For i = 1 To 6 count = i + 5 r = ActiveWorkbook.Worksheets("Sheet2").Range("I" & count).Value If r <= 0.7 Then ActiveWorkbook.Worksheets("Sheet2").Range(Cells(count, 6), Cells(count, 12)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With End If Next i Application.ScreenUpdating = True End Sub 

此代码在Sheet1上编码。 但是,当我试图创build子过程此工作簿对象似乎工作,我想要的

回到Sheet1上的代码,当我把“'”放在下面一行ActiveWorkbook.Worksheets("Sheet2").Range(Cells(count, 6), Cells(count, 12))它变成绿色,是没有错误窗口,但它仍然不工作,因为我想要的

我很想先感谢任何经过并提供我任何评论或解决scheme的人。 我不得不为我的不称职编码感到抱歉,我是初学者。

代替:

 ActiveWorkbook.Worksheets("Sheet2").Range(Cells(count, 6), Cells(count, 12)).Select 

使用:

 With ActiveWorkbook.Worksheets("Sheet2") Call .Activate Call .Range(.Cells(count, 6), .Cells(count, 12)).Select End With 

像这样,你清楚地指定你想要select一个由ActiveWorkbook.Worksheets("Sheet2")的单元格定义的范围,而不是来自执行时活动的任何对象的一些单元格。 select在不活动的工作表中不起作用。