2015-07-21 655 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

相关问题