Dzień dobry
chciałbym się zapytać czy da się w Calcu napisać funkcję, która będzie kopiowała zawartość komórki do innej ale zachowując przy tym formatowanie
np w komórce A1 mam tekst zawierający dolne i górne
3 indeksy, a ja chce go skopiować do komórki A3 (ale poprzez funkcję =funkcja(A1) ) tak aby zostało zachowane formatowanie (głównie chodzi mi o indeksy).
Z góry dziękuję za odpowiedź
Funkcja dolnego i gornego indeksu
Funkcja dolnego i gornego indeksu
OpenOffice 4.1 na Windows 7 Pro
Libre Office 4.2 na Windows 7 Pro
Libre Office 4.2 na Windows 7 Pro
Re: Funkcja dolnego i gornego indeksu
Takiej funkcji nie ma.
Problem polega na tym, że funkcje wywoływane w formułach nie otrzymują adresów komórek z argumentami, tylko wartości tychże już pobranych argumentów. Jest to logiczne, bo spodziewamy się, że =blabla(A1) jest równie sensowne jak =blabla(12) albo nawet =blabla(A1 + A2 + 3). Wobec tego funkcja, która jest wywoływana z argumentem A1 nie "wie", że jest to adres komórki, tylko dostaje daną (niesformatowaną liczbę albo niesformatowany tekst) z tej komórki. Funkcja, która działa inaczej, nawet w teorii nie jest możliwa, chyba że operuje jawnie podanym adresem komórki jako argumentem. W przypadku funkcji indirect() adres taki ma postać tekstu; w przypadku cytowanym niżej funkcje pobierające styl z wskazanej komórki mają nagłówek postaci (sheet; row; column).
W https://forum.openoffice.org/en/forum/v ... =9&t=33475 masz dyskusję na podobny temat, z odesłaniem do https://forum.openoffice.org/en/forum/v ... =21&t=2762, gdzie @Villeroy umieścił kod własnych funkcji robiących m.in. podobne rzeczy. Z tym, że jak rozumiem, zachowują one styl komórki, nawet robiony ręcznie, ale nie widzę w kodzie odwołań do formatowania zawartości tekstowej.
Najprościej byłoby użyć schematu znanego ze skrótu Ctrl+C / Ctrl+V, czyli w Calcu pary wywołań "uno:Copy" i "uno:Paste". Wywołanie takiej procedury z funkcji jest łatwe. Problemem -- jak rzeknięto wyżej -- będzie zaprojektowanie parametrów funkcji kopiującej. Musi ona znać adresy i komórki źródłowej, i komórki docelowej. I trzeba je przekazać w formie argumentów, bo środowisko takich danych do funkcji nie przekazuje.
Problem polega na tym, że funkcje wywoływane w formułach nie otrzymują adresów komórek z argumentami, tylko wartości tychże już pobranych argumentów. Jest to logiczne, bo spodziewamy się, że =blabla(A1) jest równie sensowne jak =blabla(12) albo nawet =blabla(A1 + A2 + 3). Wobec tego funkcja, która jest wywoływana z argumentem A1 nie "wie", że jest to adres komórki, tylko dostaje daną (niesformatowaną liczbę albo niesformatowany tekst) z tej komórki. Funkcja, która działa inaczej, nawet w teorii nie jest możliwa, chyba że operuje jawnie podanym adresem komórki jako argumentem. W przypadku funkcji indirect() adres taki ma postać tekstu; w przypadku cytowanym niżej funkcje pobierające styl z wskazanej komórki mają nagłówek postaci (sheet; row; column).
W https://forum.openoffice.org/en/forum/v ... =9&t=33475 masz dyskusję na podobny temat, z odesłaniem do https://forum.openoffice.org/en/forum/v ... =21&t=2762, gdzie @Villeroy umieścił kod własnych funkcji robiących m.in. podobne rzeczy. Z tym, że jak rozumiem, zachowują one styl komórki, nawet robiony ręcznie, ale nie widzę w kodzie odwołań do formatowania zawartości tekstowej.
Najprościej byłoby użyć schematu znanego ze skrótu Ctrl+C / Ctrl+V, czyli w Calcu pary wywołań "uno:Copy" i "uno:Paste". Wywołanie takiej procedury z funkcji jest łatwe. Problemem -- jak rzeknięto wyżej -- będzie zaprojektowanie parametrów funkcji kopiującej. Musi ona znać adresy i komórki źródłowej, i komórki docelowej. I trzeba je przekazać w formie argumentów, bo środowisko takich danych do funkcji nie przekazuje.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)