Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet (und Range) an Funktion übergeben

Worksheet (und Range) an Funktion übergeben
14.10.2017 12:18:30
Peter
Guten Tag
Ich suche in verschiedenen Sheets in Zeile 12 den String Bemerkungen. Ich kann in untenstehender Funktion allerdings nicht das Worksheet übergeben, in welcher gesucht wird. Im Moment wird im jeweils aktiven Worksheet gesucht. Wie kann ich der Funktion ein bestimmtes Worksheet, in welchem in Zeile 12 gesucht werden soll, übergeben?
Gruss, Peter
Option Explicit
'string in Zeile finden

Function StringFindenSpalte(wks As Worksheet, rngSuche As Range, strString As String) As Long
Dim c As Range
Debug.Print wks.Name
Debug.Print rngSuche.Address
Debug.Print rngSuche.Parent.Name
With rngSuche
End With
With rngSuche
Set c = .Find(What:=strString)
End With
StringFindenSpalte = c.Column
End Function
Sub test()
Debug.Print StringFindenSpalte(Worksheets("G"), Range("12:12"), "Bemerkungen")
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet (und Range) an Funktion übergeben
14.10.2017 12:40:17
Nepumuk
Hallo Peter,
die Tabelle ist doch das Parent des Ranges also überflüssig das extra nochmal zu übergeben.
Option Explicit

Function StringFindenSpalte(rngSuche As Range, strString As String) As Long
    Dim c As Range
    
    Debug.Print rngSuche.Address
    Debug.Print rngSuche.Parent.Name
    
    Set c = rngSuche.Find(What:=strString)
    
    StringFindenSpalte = c.Column
End Function

Sub test()
    Debug.Print StringFindenSpalte(Worksheets("G").Rows(12), "Bemerkungen")
End Sub

Gruß
Nepumuk
Anzeige
AW: Worksheet (und Range) an Funktion übergeben
14.10.2017 12:41:06
Luschi
Hallo Peter,
ich übergebewn die Parameter al String und setze erst in der Funktion den Suchbereich zusammen.
Function StringFindenSpalte(wks As String, rngWo As String, strSuche As String) As Long
Dim rngSuche As Range, c As Range
Set rngSuche = ThisWorkbook.Worksheets(wks).Range(rngWo)
'bei Range.Find immer alle Parameter angeben
'siehe Bemerkungen in:
'https://msdn.microsoft.com/de-de/VBA/Excel-VBA/articles/range-find-method-excel
With rngSuche
Set c = .Find(strSuche, , xlValues, xlPart, xlByRows, _
xlNext, False, False, False)
End With
StringFindenSpalte = c.Column
Set c = Nothing
End Function
Sub test()
Debug.Print StringFindenSpalte("G", "12:12", "Bemerkungen")
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Worksheet (und Range) an Funktion übergeben
14.10.2017 12:44:02
Peter
Vielen Dank euch beiden!
Jetzt ist es mir klar.
Gruss, Peter
AW: Keine "Bemerkungen" - kein c.Column
14.10.2017 12:55:02
Gerd
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge