Fai la tua domanda
0

macro excel in calc

chiesto il 2019-10-17 00:19:21 +0100

Immagine gravatar per Viprevi

Ciao a tutti, Mi serve un aiuto con Calc. Ho creato un foglio di lavoro con Calc e voglio aggiungere delle macro. Il problema è che per eseguire le macro LibreOffice chiede che sia installata Java. Ma il foglio di Calc ce lh'ho nel computer del lavoro e li non è installato Java. E' ovvio. Dato che Java è un ambiente che ha avuto problemi di sicurezza, la maggior parte delle aziende, organizzazioni ecc. hanno bloccato l'installazione di Java. E' normale che LibreOffice costringa a installare Java? In questo modo non avrà mai diffusione nelle aziende perché Calc senza macro è castrato e le aziende non vogliono installare Java nei loro computer.

Comunque, a questo punto la domanda è: si può scrivere a mano una macro VBA nel calc? Perchè le macro VBA le esegue. Ma il problema è che la macro la devo scrivere a mano perché nei computer della mia azienda non si possono importare file dall'esterno. Dunque non posso prendere un file fatto con Excel e eseguirlo da Calc. Bisogna scriverlo per forza a mano. Io ci ho provato, ma non ci riesco a fare.

La macro è molto semplice:

Sub Macro1()

Range("a7:a15").ClearContents

Range("I7:I21").Select
Selection.Copy
Range("E7:E21").Select
ActiveSheet.Paste

End Sub

Grazie

modifica retag flag offensive close merge delete

1 Answer

0

risposto il 2019-10-17 05:59:45 +0100

Immagine gravatar per Ratslinger

Ciao,

È possibile utilizzare Python senza installare Java.

Script semplice:

#!/usr/bin/env python3

def myfunction(*arg):
    desktop = XSCRIPTCONTEXT.getDesktop()
    model = desktop.getCurrentComponent()
    sheet = model.CurrentController.ActiveSheet
    ClearRange = sheet.getCellRangeByName("A7:A15")
    for i in range(0,9):
        ClearRange.clearContents(2 ^ i)
    CopyRange = sheet.getCellRangeByName("I7:I21")
    PasteCell = sheet.getCellRangeByName("E7")
    CopyAddress = CopyRange.RangeAddress
    PasteAddress = PasteCell.CellAddress
    sheet.copyRange(PasteAddress, CopyAddress)

Campione: PythonCopy.ods

Per eseguire la macro nell'esempio dal menu Strumenti -> Macro -> Esegui macro Quindi selezionare CalcCopyRange sotto il nome del documento e nel riquadro destro fare doppio clic su myfunction.

Lo script è incorporato nel documento usando APSO. Può anche essere inserito nel profilo utente. Cerca Python nella Guida.

Scusa se la traduzione non è corretta.

modifica flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower

Stats

Chieste: 2019-10-17 00:19:21 +0100

Seen: 51 times

Last updated: Oct 17