Ich entschuldige mich, wenn das klingt wie eine wirklich dumme Frage, aber ich bin neu in der Verwendung von Excel und VBA und habe mehr Zeit mit anderen Sprachen verbracht. Ich habe festgestellt, dass ich Code schreibe, um robuster zu sein, und ich schreibe den gleichen Code-Block, um immer wieder dasselbe zu tun. Gibt es eine Möglichkeit, dass ich diesen Codeblock einfach aufrufen und den gesuchten Wert abrufen und als die gewünschte Variable speichern und dann in einem anderen Sub verwenden kann.VBA Sub, das einen Wert zurückgibt
Hoffentlich macht dieses Beispiel es klarer. Ich möchte alle Werte in Zeile 1 beginnend bei A1 suchen und gehen bis der Wert leer ist. Ich möchte die Zelle mit dem Wert "Frequency" finden und dann die Spaltenindexnummer zurückgeben.
Sub findFrequency()
'find "Frequency" colum and save the column index number
Dim fFreq As String
Dim FreqCol As Variant
Range("A1").Select
fFreq = "Frequency"
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = fFreq Then
FreqCol = ActiveCell.Column
Exit Do
End If
ActiveCell.Offset(0, 1).Select
Loop
End Sub
Jetzt ideal kann ich einen anderen und verwenden Sie den Wert aus dem obigen Code schreiben
Sub Execute()
Call findFrequency
Cells(5, FreqCol).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End Sub
ich einen Fehler, wenn ich dies, weil der Wert von FreqCol laufen nicht vom Laufen die auf alles eingestellt ist Rufen Sie findFrequency auf. Gibt es einen besseren Weg dies zu tun oder sollte ich etwas anders strukturieren?
'Sub' kann keinen Wert zurück (aber es kann den Wert einer globalen Variablen zuweisen). Was Sie suchen, ist 'Funktion'. –