[gelöst] Werte ohne Formel & ohne Zwischenablage kopieren

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: [gelöst] Werte ohne Formel & ohne Zwischenablage kopieren

Re: Werte ohne Formel & ohne Zwischenablage kopieren

von nicrnicr » Di, 16.03.2021 16:22

Hallo Stephan!

Danke danke sehr!
Ich muss nicht ganze Bereiche kopieren. Von Zelle in Zelle ggf. mit Schleife und mit Arrays passt es mir!

Danke nochmals! :-)

Re: Werte ohne Formel & ohne Zwischenablage kopieren

von Stephan » Di, 16.03.2021 15:40

es gibt kein .Value bei mehrzellingem Range.

Es geht von Zelle in Zelle, z.B.:

Code: Alles auswählen

ThisComponent.Sheets.getByIndex(0).GetCellRangeByName("A1").Value = ThisComponent.Sheets.getByIndex(6).GetCellRangeByName("B14").Value
von Zelle in mehrere Zellen, per Schleife:

Code: Alles auswählen

'für Zellen A1:B10
For i = 0 To 1
	For j = 0 To 9
		ThisComponent.Sheets.getByIndex(0).getCellByPosition(i,j).Value = ThisComponent.Sheets.getByIndex(6).GetCellRangeByName("B14").Value
	Next j
Next i
Dieses Arbeitem im Tabellenblatt per Schleife ist aber langsam, man macht das besser indem man sich Arrays zusammenbaut (per SChleife) und dann mit .setDataArray ins Blatt schreibt (ohne Beispiel, weil ich keine Zeit habe)

als Array lesen und schreiben, hierbei müssen beide Ranges gleich groß sein:

Code: Alles auswählen

x = ThisComponent.Sheets.getByIndex(6).GetCellRangeByName("B1:C10").getDataArray()
ThisComponent.Sheets.getByIndex(0).GetCellRangeByName("A1:B10").setDataArray(x)

Gruß
Stephan

[gelöst] Werte ohne Formel & ohne Zwischenablage kopieren

von nicrnicr » Di, 16.03.2021 09:37

Hallo Allerseits,

habe gerade erfahren, wie man Bereiche kopiert. Ich möchte aber nur Werte ohne Formel kopieren, und zwar ohne die Zwischenablage zu verwenden, denn sie ist nicht 100% sicher.
Habe gefunden, dass es mit sowas wie

Code: Alles auswählen

oSheet0.getCellRangeByName("B14").Value = oSheet6.getCellRangeByName("C3:C4").Value
einfach wäre. Doch ich schaffe es nicht sowas in den folgenden Sub zu stellen:

Code: Alles auswählen

Sub Main
 Dim oUeb as Object  					'Die übertragbaren Daten
 Dim oSheet0 as Object, oSheet6 as Object 	'Tabellenblatt
 Dim oRange  as Object					'Zellbereich
 Dim OBuchhaltung  as Object				'Dokument

	OBuchhaltung=ThisComponent

		oSheet6=OBuchhaltung.getSheets().getByIndex(6)

		 oRange = oSheet6.getCellRangeByName("C3:C4")

			OBuchhaltung.CurrentController.select(oRange)
				oUeb = OBuchhaltung.CurrentController.getTransferable()

	oSheet0=OBuchhaltung.getSheets().getByIndex(0)
		
 	oRange = oSheet0.getCellRangeByName("B14")
		OBuchhaltung.CurrentController.select(oRange)
			OBuchhaltung.CurrentController.insertTransferable(oUeb)

End Sub
Wisst Ihr bitte, wie es gehen würde?

Nach oben