Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA使用其他子对象的范围表达式_Excel_Vba - Fatal编程技术网

Excel VBA使用其他子对象的范围表达式

Excel VBA使用其他子对象的范围表达式,excel,vba,Excel,Vba,我有两个不同的模块。一个触发另一个。这样, Private Sub Worksheet_Change(ByVal TarGet As Range) If Not Intersect(TarGet, Range("o7:o1000")) Is Nothing Then Call dograma End If End Sub 另一个是这样开始的: Sub dograma() Txt = TarGet.Value 我得到一个错误,因为“目标”表达式没有在这个子函数中定义。但是

我有两个不同的模块。一个触发另一个。这样,

Private Sub Worksheet_Change(ByVal TarGet As Range)
If Not Intersect(TarGet, Range("o7:o1000")) Is Nothing Then
Call dograma
End If
End Sub
另一个是这样开始的:

Sub dograma()

Txt = TarGet.Value

我得到一个错误,因为“目标”表达式没有在这个子函数中定义。但是我想对这两个子函数使用相同的变量。我可以同步它们吗?

在第二个子系统中,我这样更改了名称

Sub dograma(ByVal TarGet As Range)

在第一个模块中,我改变了

Call Dograma 


它工作得很好。

将其作为参数传递
Sub-dograma(ByVal目标作为范围)
。它工作得很好。但我还需要更改第一个子模块中的调用函数,如调用dograma(TarGet)注意,
Call
的使用不是必需的,也不是有用的。这是对VB早期版本的一种回溯。如果没有它,您对Dograma的调用将变成
Dograma Target
(不带括号)
Call Dograma (TarGet)