2014-07-02 14 views
1

我目前正在編碼按鈕中,當我嘗試單擊按鈕時發現問題。彈出消息窗口運行時間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上的編碼。然而,當我試圖在當前工作簿對象創建子過程出現作爲我想要什麼

回到工作表Sheet1上,代碼時,我把「「」在下面的行前 ActiveWorkbook.Worksheets("Sheet2").Range(Cells(count, 6), Cells(count, 12))。選擇 它變成綠色工作並且沒有錯誤窗口,但它仍然不起作用,因爲我想要它

我很想先感謝任何通過並提供我任何評論或解決方案的人。我不得不爲我的無能編碼感到抱歉,我是初學者。

+0

爲我工作,用Excel 2013.我只需用* Feuil2 *替換* Sheet2 *,因爲我有一個法語Excel。但是我必須將你的代碼放在一個Workbook範圍的模塊中,否則我會得到相同的錯誤1004 *。 –

+0

Mr.Jean-Claude Arbaut,謝謝你的評論。 :] 我想你可能想看看下面的答案,如果你想嘗試解決這個錯誤。像魔術一樣工作......編碼總是像我的魔法:3 – blackthorn

回答

1

相反的:

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 

這樣你就明確規定,要選擇由ActiveWorkbook.Worksheets("Sheet2")細胞所定義的範圍,而不是由某些細胞免受任何物體活躍在執行的那一刻。選擇在不活動的工作表中不起作用。

+0

非常感謝Mr.CST-Link。它的工作正常與您的代碼 – blackthorn

+0

@ user3702656很高興我可以幫助。如果我可能會建議,請記住一般想法:不能選擇未激活的東西。 –

+0

再次感謝你TT^TT /我深深鞠躬 – blackthorn

相關問題