2010-04-07 32 views

Odpowiedz

4

Zakres procesu to sub, więc nie należy go wywoływać w nawiasach. (Błąd występuje, ponieważ (r) powoduje r zostać ocenione która zwraca jego wartość domyślna właściwość, która nie jest typu range tak niedopasowania jakich ProcessRange oczekuje

Zastosowanie albo;.

ProcessRange r 

lub

call ProcessRange(r) 
8

Nie można wywoływać Sub za pomocą nawiasu, chyba że używa się instrukcji Call.

Stąd trzeba użyć albo:

Call ProcessRange(r) 

Lub:

ProcessRange r 

Powodem tego jest to, że w VBA (i VBS, VB6, zbyt) nawias może mieć dużo różnych znaczeń.

W twoim przypadku obiekt zakresu będzie oceniony przed przekazaniem wyniku do ProcessRange. W takim przypadku prowadzi do przekazania do sub-suba string, ponieważ domyślna właściwość Range to .

znaleźć w tym artykule przegląd: http://blogs.msdn.com/ericlippert/archive/2003/09/15/52996.aspx

3

Korzystanie nawiasie Visual Basic zakłada jesteś wywołanie funkcji.

ProcessRange r 

załatwia sprawę

Powiązane problemy