2015-03-31 147 views
0

我试图定义名称的范围,然后在公式中引用它们VBA传递变量引用命名区域 - 对象定义的错误

在工作表公式此 =IFERROR(AVERAGEIFS('CAR Dashboard.xlsm'!Q2_15_Video_Penetration,'CAR Dashboard.xlsm'!Q2_15_Module,B5),"")

我传递的变量在式并返回一个对象定义的错误

Sheets("QoQ Summary").Cells(5, 11).Formula = "=IFERROR(AVERAGEIFS('CAR Dashboard.xlsm'!" & VPenName & ",'CAR Dashboard.xlsm'!" & ModuleName & ",B5,"")"""

我不知道什么是错。任何人都可以帮忙吗?谢谢!

以下是测试代码。请忽略未定义的变量。

Sub test() 
Dim ModuleName, VPenName, HPenName, CPenName, XPenName As String 
    'Define 
    ModuleName = Sheets("Settings and Instruction").range("G1").Value 
    VPenName = Sheets("Settings and Instruction").range("G2").Value 

    ActiveWorkbook.Names.Add Name:=ModuleName, RefersToR1C1:= _ 
       "=OFFSET('" & rp & "'!R5C" & Module.Column & ",,,COUNTA('" & rp & "'!C" & Module.Column & "),)" 

    ActiveWorkbook.Names.Add Name:=VPenName, RefersToR1C1:= _ 
       "=OFFSET('" & rp & "'!R5C" & VideoPen.Column & ",,,COUNTA('" & rp & "'!C" & VideoPen.Column & "),)" 

Dim rng As range 
'Set rng = range("'CAR Dashboard.xlsm'!" & VPenName) 
'Application.Goto rng 

Sheets("QoQ Summary").Cells(5, 11).Formula = _ 
       "=IFERROR(AVERAGEIFS('CAR Dashboard.xlsm'!" & VPenName & ",'CAR Dashboard.xlsm'!" & ModuleName & ",B5,"")""" 

End Sub 

回答

0

你的右括号是放错了地方,试试这个来代替:

"=IFERROR(AVERAGEIFS('CAR Dashboard.xlsm'!" & VPenName & ",'CAR Dashboard.xlsm'!" & ModuleName & ",B5,"""")" 
+0

我修改它,因为这,但仍引发一个错误..'“= IFERROR(AVERAGEIFS(”汽车仪表板。 xlsm'!“&VPenName&”,'CAR Dashboard.xlsm'!“&ModuleName&”,B5,“”)“' – qshngv 2015-04-01 01:37:45

+0

这仍然与我的回答不一样,你还没有逃过最后一组引号。 – 2015-04-01 06:11:29

+0

最后需要是'B5,“”“”)“' – 2015-04-01 09:03:28