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, :lol: 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