SearchDescriptor, Adresse der Funde herausfinden

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SearchDescriptor, Adresse der Funde herausfinden

Re: SearchDescriptor, Adresse der Funde herausfinden

von MikeRo » Mi, 28.03.2012 09:51

Tausend Dank für beide Antworten :)

Re: SearchDescriptor, Adresse der Funde herausfinden

von balu » Mi, 28.03.2012 00:01

Hallo Karo,

manche Zusammenhänge versteht man erst dann, wenn man sich irrt, und anschließend aufgeklärt wird. Also Danke schön für deine Info.


Gruß
balu

Re: SearchDescriptor, Adresse der Funde herausfinden

von DPunch » Di, 27.03.2012 19:26

Servus
MikeRo hat geschrieben:Oder habt ihr eine andere Idee, wie man es lösen kann?
Du könntest einfach in einer Schleife alle Fundadressen abarbeiten.

Code: Alles auswählen

If NOT isNull(oResult) Then
	For Each cell in oResult 
		For nRowCounter = cell.RangeAddress.StartRow To cell.RangeAddress.EndRow
			For nColumnCounter = cell.RangeAddress.StartColumn To cell.RangeAddress.EndColumn
				oTargetCell = oSheet.getCellByPosition(nColumnCounter,nRowCounter)
				textcur = oTargetCell.gettext().createtextcursor()
				textcur.gotoStart(ture)    
				textcur.String = FuZahl
				textcur.CharEscapement = 33
				textcur.CharEscapementHeight = 80
			Next nColumnCounter
		Next nRowCounter
	Next cell
End If

Re: SearchDescriptor, Adresse der Funde herausfinden

von Karolus » Di, 27.03.2012 18:10

Hallo
@Balu
'oResult' ist ein "Container" mit allen Objekten die den Suchbegriff enthalten, diese Objekte - ( die mit 'for each cell in oResult' nacheinander abgearbeitet werden) - können Einzelzellen sein oder auch ein zusammenhängender rechteckiger Zellbereich indem alle Zellen den Suchbegriff enthalten.

'cell' ist hier nur ein Variablenname man könnte genausogut 'for each Radieschen in oResult' schreiben.

Karo

Re: SearchDescriptor, Adresse der Funde herausfinden

von MikeRo » Di, 27.03.2012 17:55

"cell" ist gar nicht definiert, es scheint mir, das es eine Standartfunktion ist. Das Makro habe ich selber irgendwo mal gefunden.
So funktioniert es auch. Allerdings will ich ja nicht die Start und Endzelle, sondern jede Zelladresse einzeln, in der das Wort vorkommt.
(Der Sinn darin ist vor jedem Wort Format die Fußnote 1 anzufügen.)

Code: Alles auswählen

Sub Test

    oSheet = oDoc.Sheets().getByName("Angebot")
oRange = oSheet.getCellRangeByName("A12:B50")
    oSearchDesc = oSheet.createSearchDescriptor
    oSearchDesc.SearchString = "Format"
    oResult = oRange.findAll(oSearchDesc)
    
    	If NOT isNull(oResult) Then
     
     		For Each cell in oResult		
     		
     		        r = cell.getRangeAddress.StartRow
			MsgBox r
			c = cell.getRangeAddress.EndRow
   	   		MsgBox c
   	   		
		Next cell
		
      End If
End Sub
Das ist ja nur das Suchmakro, wenn ich die Adressen habe, kann ich folgendes anfügen und es wird genau das gemacht was ich will (Fußnoten)
Es muss aber vor jedes gefundene Wort und nicht nur das erste oder letzte. Oder habt ihr eine andere Idee, wie man es lösen kann?

Code: Alles auswählen

					Adresse = oDoc.sheets.getByName("Angebot").getCellByPosition(X,Y)
        	   	   	textcur = Adresse.gettext().createtextcursor()
        	   	  	textcur.gotoStart(ture) 	
					textcur.String = FuZahl
					textcur.CharEscapement = 33
					textcur.CharEscapementHeight = 80

Re: SearchDescriptor, Adresse der Funde herausfinden

von balu » Di, 27.03.2012 17:49

Hallo MikeRo,

mich würd mal interessieren wie Du "cell" defeniert hast?
Oder anders gefragt: Was ist "cell"?
Denn so in der Sub, in der Schleife, ist es nur ein Zähler. Und Zähler haben keine Zelladressierung. Deshalb kommt es zu deiner Fehlermeldung. So meine Interpretation. -{falls ich mich nicht vertue}-

Das hebt aber natürlich nicht die Antwort von Karo auf. Ich wollt nur auf eine Auffälligkeit hinweisen.



Gruß
balu

Re: SearchDescriptor, Adresse der Funde herausfinden

von Karolus » Di, 27.03.2012 17:26

Hallo
In deinem 'oResult' sind nicht nur Einzelzellen sondern auch zusammenhängende Zellbereiche
Zellbereiche haben eine Methode '.getRangeAddress' - ( Hint: Einzelzellen haben auch diese Methode. )

Im Übrigen: Mri existiert, benutze dieses Werkzeug und du kannst dir solche Fragen selber beantworten.

Karo

SearchDescriptor, Adresse der Funde herausfinden

von MikeRo » Di, 27.03.2012 16:45

Hallo, ich habe mir ein Makro zusammen geschrieben um die Adressen der Funde zu liefern, aber irgendwie funktioniert es nicht und ich sehe den Fehler auch nicht.

Code: Alles auswählen


Sub Test

    oSheet = oDoc.Sheets().getByName("Angebot")
    oRange = oSheet.getCellRangeByName("A12:A50")
    oSearchDesc = oSheet.createSearchDescriptor
    oSearchDesc.SearchString = "Format"
    oResult = oRange.findAll(oSearchDesc)
    
    	If NOT isNull(oResult) Then
     
     		For Each cell in oResult		
     		
     		r = cell.CellAddress.Row
			MsgBox r
			c = cell.CellAddress.Column
   	   		MsgBox c
   	   		
		Next cell
		
      End If

End Sub
Der Fehler ist Eigenschaft der Methode nicht gefunden CellAdress

Nach oben