2015-07-21 503 views
0

我有以下Excel VBA代碼,Excel的VBA - 運行時錯誤「1004:Range類的選擇方法失敗

Private Sub Worksheet_Calculate() 
    myMacro 
End Sub 





Public Sub myMacro() 


    If Range("C4").Value = "Sales" Then 

      Range("E4:AB5").Select 
Selection.NumberFormat = "$#,##0.0" 


    Else 

      Range("E4:AB5").Select 
Selection.NumberFormat = "#,##0" 

    End If 

End Sub 

我的問題是從一個下拉菜單中的細胞‘C4’引用通過查找不同的工作表。每次我碰到下面的錯誤,

'run-time error '1004: Select method of Range class failed' and it does not work. 

如果從它的工作原理相同片單元「C4」的引用,但我需要從不同的表引用。

回答

0

你的問題並不完全清楚,但如果你想查找C4在不同的片(我用Sheet2爲例),然後格式化activesheet(無需Select),你可以嘗試:

Public Sub myMacro() 
Dim ws As Worksheet 
Set ws = Sheets("Sheet2") 

If ws.Range("C4").Value = "Sales" Then 
    Range("E4:AB5").NumberFormat = "$#,##0.0" 
Else 
    Range("E4:AB5").NumberFormat = "#,##0" 
End If 

End Sub 
+0

對不起 - 我會盡量讓它更清晰一點! – Neil

+0

對不起 - 我會盡量讓它更清晰一點!在我的原始代碼單元格中,'C4'決定了範圍的格式。如果'C4'返回'Sales',則格式將包含貨幣符號,如果返回其他內容,它將使用其他格式(這些全部在同一張工作表 - 工作表1中)。 'C4'的內容與另一張表單中的單元格相關聯(例如表2) - 這是我得到我的錯誤的地方。如果'C4'鏈接到相同工作表內的單元格(工作表1),它會工作,但是當我將它鏈接到另一工作表(工作表2)時,它不會。希望這是有道理的! – Neil

+0

什麼是C4公式,如果這是失敗的部分? :) – brettdj

相關問題