Salve, mi servirebbe una macro che:
dal fileB.xls foglio1 deve importare il range variabile A2:G(LastRow) come stringhe
nel fileA.ods foglio corrente (da dove faccio partire la macro) dalla cella A2
Io sono riuscito solo a importare o solo una cella o tutto il foglio!
Sub Importa
dim m()
path = ConvertToUrl("W:\DOWN\exported-list.xls")
oDoc1 = StarDesktop.loadComponentFromUrl(path,"_default" , 0, m())
stxt = oDoc1.Sheets(0).getCellByPosition(0,1).getString()
oDoc = ThisComponent
oDoc.Sheets(2).getCellByPosition(0,1).setString(stxt)
oDoc1.Close(true)
End sub
Senza aprire e chiudere il fileB è possibile?
Grazie
[Risolto] Importare range variabile
[Risolto] Importare range variabile
Ultima modifica di epico il mercoledì 4 giugno 2014, 21:25, modificato 1 volta in totale.
OpenOffice 4.1 su Win10
Re: Importare range variabile
Perché senza aprirlo ? forse non vuoi che si veda il file aperto ? in questo caso
Codice: Seleziona tutto
Sub rangecopyfrom
Dim oDocA As Object, oDocB As Object, oSheetA As Object, Dummy(),oRangeA as object, targetcell as object
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dim args(0) As New com.sun.star.beans.PropertyValue
oDocA = ThisComponent
oFrameA = oDocA.CurrentController.Frame
oSheetA = oDocA.getSheets.getByIndex(0)
adresseDoc = ConvertToURL("E:\prova\indice.xls") ' <<<<< da cambiare
args(0).Name = "Hidden"
args(0).Value = true
oDocB=StarDesktop.loadComponentFromURL(adresseDoc,"_blank",0, args())
oSheetB = oDocB.getSheets.getByIndex(0)
oFrameB = oDocB.CurrentController.Frame
c = oSheetA.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow + 1
oRangeB = oSheetB.getCellRangeByName("A2:G" & LastRow) ' <<<<< da cambiare
oDocB.CurrentController.Select(oRangeB)
oDispatcher.executeDispatch(oFrameB, ".uno:Copy", "", 0, Dummy())
targetcell= oSheetA.getCellRangeByName("A2") ' <<<<< da cambiare
oDocA.CurrentController.Select(targetcell)
oFrameA = oDocA.CurrentController.Frame
oDispatcher.executeDispatch(oFrameA, ".uno:Paste", "", 0, Dummy())
oDocB.close(true)
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Importare range variabile
Si è ok, però ha importato il range A1:G2
allora ho cambiato
c = oSheetA.createCursor
con
c = oSheetB.createCursor
Ho aggiunto alla fine
oDispatcher.executeDispatch(oFrameA, ".uno:GoUp", "", 0, Dummy())
per evitare che il range importato rimanga selezionato
[Perché senza aprirlo ? ...]
Non c'è nessun motivo particolare, solo una mia curiosità
Grazie
allora ho cambiato
c = oSheetA.createCursor
con
c = oSheetB.createCursor
Ho aggiunto alla fine
oDispatcher.executeDispatch(oFrameA, ".uno:GoUp", "", 0, Dummy())
per evitare che il range importato rimanga selezionato
[Perché senza aprirlo ? ...]
Non c'è nessun motivo particolare, solo una mia curiosità
Grazie
OpenOffice 4.1 su Win10