Seite 1 von 1
(gelöst)Suchen und finden
Verfasst: Mi 16. Jul 2014, 09:24
von Pums
Hallo zusammen,
mit Findnext kann ich ja einen Bereich duurchsuchen.
Wie bekomme ich es hin das er nicht soetwas findet:
Suchbegriff: "Hof"
Er findet
Hofnarr und Bierhof
Ich möchte aber das er nur nach den ersten 3 Buchstaben sucht.
Er soll bei eingabe von Hof halt nur Hofnarr finden, nicht Bierhof?
Wie geht das?
Danke.
Re: Suchen und finden
Verfasst: Mi 16. Jul 2014, 12:20
von karolus
Hallo
Suche nach ^Hof.*
mit der Option [x]regulärer Ausdruck
Karolus
(gelöst)Suchen und finden
Verfasst: Mi 16. Jul 2014, 17:06
von Pums
Vielen Dank klappt.
Re: (gelöst)Suchen und finden
Verfasst: So 10. Aug 2014, 17:50
von pstoelzg
Hallo Pums,
hier folgt ein anderer Lösungsansatz. Regular Expressions sind zwar sehr ellegant... Ich finde sie aber sehr unintuitiv.
Bleibt man bei den 'herkömmlichen' BASIC Funktionen, so kann man eine zweite Prüfung durchführen und damit die Anzahl der Characters eines Strings prüfen:
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
REM ============================================================================
REM
REM ============================================================================
Sub Main
' Constants
Const sSEARCH_PAT As String = "Hof"
' Variables
Dim iColIdx As Integer
Dim iColIdxEnd As Integer
Dim iRowIdx As Integer
Dim iRowIdxEnd As Integer
Dim oCell As Object
Dim oDocCalc As Object
Dim oSheet As Object
Dim sCellCont As String
' Initialize objects
oDocCalc = ThisComponent
' oSheet = oDocCalc.Sheets(0)
oSheet = oDocCalc.getSheets().getByName("Sheet3")
' Initialize variables
iColIdxEnd = 5
iRowIdxEnd = 20
' Set column index
For iColIdx = 0 To iColIdxEnd Step 1
' Set row index
For iRowIdx = 0 To iRowIdxEnd Step 1
' Create cell object
oCell = oSheet.getCellByPosition(iColIdx, iRowIdx)
' Read string value from cell
sCellCont = oCell.String
' Check length (that is: number of characters)
If Len(sCellCont) = Len(sSEARCH_PAT) Then
' Check characters
If sCellCont = sSEARCH_PAT Then
' Change background color of cell with matching entry
oCell.Cellbackcolor = RGB(0, 128, 0)
End If
End If
Next iRowIdx
Next iColIdx
' Delete objects explicitly
Set oSheet = Nothing
Set oDocCalc = Nothing
Set oCell = Nothing
End Sub
Re: (gelöst)Suchen und finden
Verfasst: So 10. Aug 2014, 18:53
von karolus
Hallo
Das Thema ist seit drei Wochen durch.
Die Kommentare sind überflüssig, sie beschreiben lediglich das offensichtliche.
Die Namen sind grausam.
Dann auch noch "explizites deleten" von Objekten die nach Erreichen von
end sub eh nicht mehr existieren
Die Prüfung `
scellcontent = "Hof"` sollte doch wirklich ausreichen,

oder glaubst das der Text "Hof" auch mal eine andere Länge als 3 hat ??
Postiv anzumerken bleibt eigentlich nur: Die Einrückung ist sauber !!
Ausserdem war die Fragestellung eine andere:
Pums hat geschrieben:Suchbegriff: "Hof"
Er findet
Hofnarr und Bierhof
Ich möchte aber das er nur nach den ersten 3 Buchstaben sucht.
Er soll bei eingabe von Hof halt nur Hofnarr finden, nicht Bierhof?
Karolus