Wie übergebe ich einen Bereich an einen Sub in Word VBA?

8

Ich weiß, das klingt einfach, aber anscheinend nicht.

Wenn ich dies in Word VBA schreibe, sagt es immer "inkompatible Typen" - warum? Und wie kann ich es funktionieren lassen?

%Vor%     
Wolfgang 07.04.2010, 12:52
quelle

3 Antworten

8

Es ist nicht erlaubt, ein Sub mit Klammern aufzurufen, außer wenn Sie die Call -Anweisung verwenden.

Daher müssen Sie entweder:

verwenden %Vor%

Oder:

%Vor%

Der Grund dafür ist, dass in VBA (und VBS, VB6, auch) die Klammer viele verschiedene Bedeutungen haben kann.

In Ihrem Fall wird das Bereichsobjekt evaluiert , bevor das Ergebnis an ProcessRange übergeben wird. In diesem Fall führt dies dazu, dass string an die Untereinheit übergeben wird, da die Standardeigenschaft von Range Text ist.

Siehe diesen Artikel für einen Überblick: Ссылка

    
Daniel Rikowski 07.04.2010 12:58
quelle
4

Der Prozessbereich ist sub , also rufen Sie ihn nicht in Klammern auf. (Der Fehler tritt auf, weil (r) bewirkt, dass r ausgewertet wird und dessen Standardeigenschaftswert zurückgegeben wird, der nicht vom Typ range ist, also nicht übereinstimmt, was ProcessRange erwartet.

Verwenden Sie entweder;

%Vor%

oder

%Vor%     
Alex K. 07.04.2010 12:58
quelle
3

Bei der Verwendung von Klammern wird davon ausgegangen, dass Sie eine Funktion aufrufen.

%Vor%

macht den Trick

    
C.Evenhuis 07.04.2010 12:59
quelle

Tags und Links