È possibile posizionare il contenuto di una cella all'interno di una formula. Per formula intendo l'editor di formule matematiche (inserire-> oggetto-> formula).Contenuto di celle all'interno della formula
risposta
In base alle mie conoscenze, non esiste un modo per fare riferimento a una cella da una formula. L'editor di formule matematiche non ha alcuna conoscenza di OO Calc. Tuttavia, è possibile creare una nuova formula ogni volta che è necessario utilizzando le macro.
Seguire thesse passaggi per farlo funzionare:
mettere la formula matematica che si desidera inserire in una cella. Per esempio, mettere alcuni numeri a celle A1, A2, A3 e mettere quanto segue per cella C3:
=CONCATENATE("{";A1;"}";"over {";A2;" `+` ";A3;"}";" `=` ";A4).
Questo genererà qualcosa come
{1} over {2 `+` 3} `=
in C3Creare una macro dal codice qui sotto. In OO Calc, selezionare
Tools > Macros > Organize Macros > OpenOffice.org Basic > My Macros > Standard
Creare una nuova macro e incollare il codice di seguito.
Ora è possibile eseguire macro utilizzando
Tools > Macros > Run Macro
. Esegui oinsertFormula
che inserisce la formula matematica generata dalla cella C3 oaddFormulaListener
che registrerà un listener e rigenererà la formula per te ogni volta che i contenuti di C3 cambiano.
Ecco il codice. Contiene costanti formulaCellFrom
e formulaCellTo
, che specificano quale cella ha l'origine della formula matematica e quale è la cella di destinazione in cui deve essere posizionato l'oggetto formula generato. Si noti che la cella di destinazione deve essere sufficientemente grande per la formula generata, altrimenti la macro non eliminerà il vecchio contenuto della cella durante la rigenerazione della formula.
const formulaCellFrom As String = "$C$1"
const formulaCellTo As String = "$C$10"
rem ----------------------------------------------------------------------
rem Adds listener for changes of the math formula
sub addFormulaListener
dim oSheet as Object
dim oCell as Object
rem go to cell containing markup
oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellRangeByName(formulaCellFrom)
rem add listener
oListener = CreateUnoListener("formulaListener_", "com.sun.star.chart.XChartDataChangeEventListener")
oCell.addChartDataChangeEventListener(oListener)
end sub
rem ----------------------------------------------------------------------
rem Listener for cell changes
sub formulaListener_chartDataChanged
dim oCell as Object
rem remember current cursor position
oCell = ThisComponent.CurrentSelection
rem call insertFormula
call insertFormula
rem restore cursor position
ThisComponent.CurrentController.select(oCell)
end sub
rem ----------------------------------------------------------------------
rem Creates a math formula from text in cell C1 and inserts it into cell C10
sub insertFormula
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem go to cell containing markup and copy it
dim fromCellArgs(0) as new com.sun.star.beans.PropertyValue
fromCellArgs(0).Name = "ToPoint"
fromCellArgs(0).Value = formulaCellFrom
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, fromCellArgs())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem go to cell where I want the formula displayed
dim toCellArgs(0) as new com.sun.star.beans.PropertyValue
toCellArgs(0).Name = "ToPoint"
toCellArgs(0).Value = formulaCellTo
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, toCellArgs())
rem delete previous content
dim deleteArgs(0) as new com.sun.star.beans.PropertyValue
deleteArgs(0).Name = "Flags"
rem flags: A = All, S = String, V = Value, D = DateTeim, F = Formula, ...
rem ... N = Notes, T = Formats, O = Objects
deleteArgs(0).Value = "AO"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, deleteArgs())
rem open Star.Math
oDesk = createUnoService ("com.sun.star.frame.Desktop")
dispatcher.executeDispatch(document, ".uno:InsertObjectStarMath", "", 0, Array())
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem paste clipboard using Array() as place-holder for variable name
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem exit Star.Math
dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())
end sub
Il codice è stato adattato da this question. Apparentemente, la macro deve essere creata in My Macros
e non funziona se incorporato nel foglio di calcolo (misura di sicurezza? Semplicemente non ha funzionato per me). Le celle di origine e di destinazione sono hardcoded ma è possibile modificare la macro in base alle proprie esigenze. Non sono esperto in Visual Basic, ma tali modifiche dovrebbero essere semplici.
Per seguire questi passaggi, avevo bisogno di cambiare 'formulaCellFrom' in" $ C $ 3 ". –
- 1. Impossibile assegnare la formula all'intervallo di celle in Excel
- 2. Imposta la formula su un intervallo di celle
- 3. rimuovere i tag HTML da stringhe di celle: excel Formula
- 4. Confrontare il contenuto delle celle contro stringa in Excel
- 5. Visualizzazione della formula di markdown in GitHub
- 6. Trova l'ultima riga non vuota in un intervallo di celle con una formula
- 7. Le celle di tabella hanno un'altezza fissa indipendentemente dal contenuto della cella
- 8. celle della tabella di blocco per la loro dimensione predefinita a prescindere dal contenuto
- 9. La formula di Haversine o la formula di Vincenty sono migliori per il calcolo della distanza?
- 10. Vaadin - Colorare le celle di una tabella basate sul contenuto
- 11. trascinando celle della tabella html
- 12. Impostazione del contenuto delle celle tabella basata su larghezza disponibile
- 13. Errore nel grafico, mancante della formula
- 14. Recupera informazioni sulle celle di celle
- 15. Sintassi della formula della colonna calcolata del server Sql
- 16. Formattazione celle Excel (valuta)
- 17. Orgmode Tabella formattazione di celle
- 18. UITableView Celle personalizzate Scomparsa del contenuto dopo lo scorrimento
- 19. Un rovescio della formula di Haversine per MySQL?
- 20. Come aggiungere commenti all'interno della formula di Excel complessa
- 21. Come selezionare una parte di formula in formula in R?
- 22. Celle di tabella HTML di dimensioni fisse, anche quando il contenuto è troppo grande?
- 23. Come evidenziare (celle da un altro foglio) mentre si modifica la formula?
- 24. Utilizzo della funzione "Celle" in excel vba
- 25. Formula Excel non aggiornando la cella
- 26. Leggere il contenuto della cella in un notebook ipython
- 27. Reset Homebrew Formula
- 28. Forza UITableView per scorrere fino a Celle di celle
- 29. parsing formula excel style
- 30. Formula Haversine con php
Nessuna reazione ancora, e questa sarebbe una caratteristica così bella! –