Làm cách nào để làm nổi bật hàng và cột hiện tại giống như hình chữ thập trong Libreoffice?


3

Làm cách nào tôi có thể làm nổi bật hàng và cột hiện tại như hình chữ thập trong Libreoffice làm hướng dẫn cho mắt?

crosshair ở Libreoffice

Dường như có một yêu cầu tính năng mở từ năm 2011 và một câu hỏi rất giống với openoffice - nhưng không có gì tôi có thể tìm thấy trên libreoffice và được hỗ trợ tại thời điểm này. Làm cách nào tôi có thể khiến LibreScript thực hiện việc này?

Câu trả lời:


3

Lupp gần đây đã tạo ra một bảng tính ví dụ sử dụng macro cho hành vi này. Nó được đăng tại https://forum.openoffice.org/en/forum/viewtopic.php?t=43531#p431848 .

Tuy nhiên, ông nhận xét tại AskLO rằng:

Đó là một cách tiếp cận đáng ngờ để sử dụng "macro" cho mục đích này. Giải pháp chỉ áp dụng cho các trang tính không sử dụng định dạng ô cứng (trực tiếp) ... Không thực sự được đề xuất!

Giải pháp tốt duy nhất sẽ là nếu nó có thể được triển khai trong LibreOffice. Nhưng như bạn có thể đã đọc trong báo cáo lỗi:

Nói chuyện với một trong những nhà phát triển có kinh nghiệm ... đó không phải là một nhiệm vụ tầm thường. Nó có thể không bao giờ được thực hiện.

Như đã đề cập trong câu trả lời của tôi cho câu hỏi tương tự trên AskLO, một giải pháp thực tế là sử dụng định dạng có điều kiện để thêm màu vào các hàng lẻ hoặc chẵn.

CHỈNH SỬA :

Để tái tạo ví dụ của Lupp bắt đầu từ đầu, trước tiên, hãy chuyển đến Công cụ -> Macro -> Sắp xếp macro -> LibreOffice Basic. Tìm tài liệu .ods, nhấn New để tạo mô-đun mới và đặt mã sau vào mô-đun.

Global focusCellAddressGl As String, columnWithFocusCellGl As Long, rowWithFocusCellGl As Long

Function focusCell(Optional pCtrl) As Object
REM Concept by "uros", "Villeroy"
REM Responsible for this variant: Wolfgang Jäger
REM 2017-09-28 V0
On Error Goto eExit
If IsMissing(pCtrl) Then pCtrl = ThisComponent.CurrentController
If  NOT pCtrl.SupportsService("com.sun.star.sheet.SpreadsheetView") Then Exit Function
    Dim theSheet As Object, fC As Object, sheetNum As Long, sInfo As String, sInfoDelim As String 
    Dim vD, vDSplit, sInfoSplit
vD             = pCtrl.ViewData
vDSplit        = Split(vD, ";")
theSheet       = pCtrl.ActiveSheet's(sheetNum)
sheetNum       = theSheet.RangeAddress.Sheet
sInfo          = vDSplit(sheetNum + 3)
REM For CellAddress.Row >= 8192 the "+" is used as the subdelimiter in ViewData. WHY?
If InStr(sInfo, "+")>0 Then 
    sInfoDelim = "+"
Else
    sInfoDelim = "/"
End If
sInfoSplit     = Split(sInfo, sInfoDelim)
fC             = theSheet.GetCellByPosition(sInfoSplit(0), sInfoSplit(1))
focusCell      = fC
eExit:
End Function 

Function focusCellAddress(Optional pDummy)
On Error Goto eExit
If focusCellAddressGl="" Then onSelectionChanged(NULL)
focusCellAddress=focusCellAddressGl
eExit:
End Function

Function columnWithFocusCell(Optional pDummy)
On Error Goto eExit
If columnWithFocuscellGl=0 Then onSelectionChanged(NULL)
columnWithFocusCell=columnWithFocusCellGl
eExit:
End Function

Function rowWithFocusCell(Optional pDummy)
On Error Goto eExit
If rowWithFocuscellGl=0 Then onSelectionChanged(NULL)
rowWithFocusCell=rowWithFocusCellGl
eExit:
End Function

Sub onSelectionChanged(pEvent)
On Error Goto eExit
tFC=focusCell()
focusCellAddressGl=Split(tFC.AbsoluteName,".")(1)
With tFC.CellAddress
columnWithFocusCellGl=.Column+1
rowWithfocusCellGl=.Row+1
End With
specCell=tFC.Spreadsheet.GetCellByPosition(0,0)
specCell.String = tFC.AbsoluteName
eExit:
End Sub 

Bây giờ, nhấp chuột phải vào tab của trang tính hiện tại và chọn Sự kiện Trang tính . Chỉ định onSelectionChangedcho sự kiện "Lựa chọn thay đổi".

Ngoài ra, tạo phong cách cfFocusCrossvới một màu nền.

Cuối cùng, đi đến Định dạng -> Định dạng có điều kiện -> Quản lý -> Thêm.

  • Công thức là OR(ROW(A1)=ROWWITHFOCUSCELL();COLUMN(A1)=COLUMNWITHFOCUSCELL())+N($A$1)*0
  • Áp dụng phong cách cfFocusCross
  • Phạm vi A1:Z100

bảng tính với hàng và cột được tô sáng


Tôi đề nghị thêm mã hoàn chỉnh ở đây, vì người dùng có thể vẫn sẽ truy cập trang sx khi diễn đàn đã di chuyển, chuyển phần mềm hoặc URL đã chết.
Jonas Stein

@Jonas Stein: OK, mã đã được thêm vào cùng với hướng dẫn.
Jim K
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.