Hallo Zusammen,
Ich möchte in einen Makro eine Variable definieren:
Sub X()
X="Me"
Call Printing
End Sub
Und X möchte im Code Printing benutzen:
If wks.Range("A3") = X Then
Funktioniert nicht?
Gruss und Danke für die Unterstützung
Salim
Sub X()
X="Me"
Call Printing
End Sub
Und X möchte im Code Printing benutzen:
If wks.Range("A3") = X Then
Funktioniert nicht?
Gruss und Danke für die Unterstützung
Salim
Option Explicit
Public x As String
Sub tt()
x = "Me"
Call Printing
End Sub
Sub Printing()
If Range("A3") = x Then
MsgBox x
End If
End Sub
alternativ:
Sub tt()
Dim x As String
x = "Me"
Call Printing(x)
End Sub
Sub Printing(strText As String)
If Range("A3") = strText Then
MsgBox strText
End If
End Sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Sub AufrufenderMakro()
Dim x As String
x="Me"
Call Printing(x)
End Sub
Public Sub Printing(ByVal y As String)
If wks.Range("A3") = y Then
End If
End Sub
Durch obigen Code wird die Variable x an die Subroutine "Printing" übergeben . "ByVal" bedeutet, dass sich die Variable "x" nicht ändert, wenn sich "y" in der Subroutine "Printing" ändern sollte (sonst "ByVal"
einfach weglassen). Die Variable "y" übernimmt dann den Wert der Variable "x"
Man spricht hier von Parameterübergabe (aus einem Makro in eine Subroutine, d.h. in einen anderen, von diesem aufgerufenen Makro).
Werner