在VBA中将命名范围作为parameter passing时出错

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

我已经在VBA中定义了两个子过程。 在第一个子程序中,我select了单元格(3X3 MATRIX),在“ABC”下命名,我正在复制另一个单元格“PQR”。 这是工作:)

我想在从ABC复制PQR值时启用“所有边界”。 为此我录制了一个macros。

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

我以如下方式调用macros:

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-看看:
在Excel 2013 VBA中引用命名单元格的正确方法是什么? (我知道我搞砸了)

VBA参考命名范围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