将命名范围作为参数传递给VBA时出错

时间:2015-05-26 06:40:29

标签: excel vba excel-vba

我在两个子程序中传递范围时遇到问题。你能说出可能的错误吗?

我在VBA中定义了两个子过程。在第一个子程序中,我有一个选择的单元格(3X3 MATRIX),命名为" ABC"我正在复制到另一个选择的单元格" PQR"。这工作:)

我想启用"所有边界"当值从ABC复制到PQR上时。为此我记录了一个宏。

但是,每当我运行这个子程序时,它都会给出一个对象不存在的错误。

我通过以下方式调用宏:

All_border_test PQR 

子程序的代码如下:

Sub All_borders_test(d As Range)
Range(d).Select

' Recorded Macro to enable all borders (its working) 
End Sub()   

1 个答案:

答案 0 :(得分:0)

1-看一看:
What's the RIGHT way to reference named cells in Excel 2013 VBA? (I know I'm messing this up)
VBA Reference Named Range ActiveSheet
2-修复你的代码:

Sub All_borders_test(d As Range)
    d.Select ' old code was: Range(d).Select
End Sub 'no parenthesis here

3-您可以使用以下电话之一致电All_borders_test

Call All_borders_test([PQR])
Call All_borders_test(Range("PQR"))
Call All_borders_test(Sheet1.Range("PQR")) ' assuming that PQR range exists in Sheet1