在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