LibreOffice Calc: Злиття комірок з рамками, видалення правої сторони меж


0

Використовуючи функцію кордону в LibreOffice Calc, вона працює добре. Але коли я зливаю клітини всередині клітини, яка має межі, вона видаляє праву сторону меж. Будь ласка, подивіться на скріншоти: введіть тут опис зображення

  1. Просто злилося кілька комірок.

  2. Додані рамки для комірки після об'єднання.

  3. Тут, застосувавши опцію злиття до осередкової рамки, побачите, що межа правої сторони поля зникає.

Що тут відбувається? Мені потрібно рішення, в якому права сторона кордону не зникала. Будь-яка допомога буде вдячна.

Відповіді:


1

Встановіть усі межі перед об'єднанням, а не лише зовнішні межі:

зовні і всередині кордонів

Якщо перша незамкнута комірка не має нижньої або правої межі, то також не буде об'єднана комірка:

тільки за межами кордонів

Редагувати :

Щоб полегшити виконання цієї дії повторно, я записав наступний макрос. Це може бути призначено кнопкою гарячої клавіші або панелі інструментів через Tools -> Customize.

sub SetAllBordersAndMerge
    dim document   as object
    dim dispatcher as object
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    dim args1(12) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "OuterBorder.LeftBorder"
    args1(0).Value = Array(0,0,2,0,0,2)
    args1(1).Name = "OuterBorder.LeftDistance"
    args1(1).Value = 0
    args1(2).Name = "OuterBorder.RightBorder"
    args1(2).Value = Array(0,0,2,0,0,2)
    args1(3).Name = "OuterBorder.RightDistance"
    args1(3).Value = 0
    args1(4).Name = "OuterBorder.TopBorder"
    args1(4).Value = Array(0,0,2,0,0,2)
    args1(5).Name = "OuterBorder.TopDistance"
    args1(5).Value = 0
    args1(6).Name = "OuterBorder.BottomBorder"
    args1(6).Value = Array(0,0,2,0,0,2)
    args1(7).Name = "OuterBorder.BottomDistance"
    args1(7).Value = 0
    args1(8).Name = "InnerBorder.Horizontal"
    args1(8).Value = Array(0,0,2,0,0,2)
    args1(9).Name = "InnerBorder.Vertical"
    args1(9).Value = Array(0,0,2,0,0,2)
    args1(10).Name = "InnerBorder.Flags"
    args1(10).Value = 0
    args1(11).Name = "InnerBorder.ValidFlags"
    args1(11).Value = 127
    args1(12).Name = "InnerBorder.DefaultDistance"
    args1(12).Value = 0
    dispatcher.executeDispatch(document, ".uno:SetBorderStyle", "", 0, args1())

    dim args2(0) as new com.sun.star.beans.PropertyValue
    args2(0).Name = "MoveContents"
    args2(0).Value = true
    dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, args2())
end sub

Так, встановлення меж усіх комірок перед об'єднанням працює. Але якщо мені доведеться об'єднати принаймні 10 комірок і там є сотні рядків, то тут можна зрозуміти проблему. Чи є альтернатива? Спасибі за вашу допомогу.
Анімеш Патра

Дивіться мою відредаговану відповідь вище. Чи допомагає це?
Jim K

Так, це допомагає. Дякую. Я призначив макрос панелі інструментів. Було б чудово, якби ви записали макрос із максимальною товщиною меж у стилі кордону. Однак ще раз дякую.
Анімеш Патра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.