używam następujący kod, aby zablokować treść niektórych komórkachVBA Excel - Jak zablokować konkretne komórki ale umożliwiają filtrowanie i sortowanie
Sub LockCell(ws As Worksheet, strCellRng As String)
With ws
.Unprotect
.Cells.Locked = False
.Range(strCellRng).Locked = True
.Protect Contents:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, DrawingObjects:=True
End With
End Sub
to działa dobrze blokowania treści tych konkretnych kolumn. Problem polega na tym, że pracując nad samym arkuszem kalkulacyjnym, użytkownicy nie mogą sortować ani filtrować ani stosować obramowań do komórek, ponieważ te elementy menu programu Excel są wyłączone. Myślałem, że AllowSorting:=True
, AllowFiltering:=True
i DrawingObjects:=True
pozwoliłoby że ten sam sposób AllowFormattingColumns:=True
i AllowFormattingRows:=True
dozwolone skalowania.
Z góry dziękujemy za pomoc.
Pozdrawiam, Ronald
Sugeruję ponowne przeczytanie pomocy programu Excel z 'Worksheet Proptect', szczególnie w odniesieniu do parametrów _Allow_ chronionych _workheets_ i locked _cells_. AllowSorting: "Każda komórka w zakresie sortowania musi być odblokowana lub niechroniona" AllowFiltering: "Użytkownicy mogą zmieniać kryteria filtrowania, ale nie mogą włączać ani wyłączać automatycznego filtra" –
Dzięki, to jest smutne, ponieważ muszę mieć możliwość zablokowania niektórych treść, ale zezwól użytkownikowi na sortowanie i filtrowanie. Jakieś pomysły? –
1.) upewnij się, że twój zasięg nie pokrywa się z innymi zakresami. 2.) odblokuj wszystkie komórki w arkuszu przed zastosowaniem blokady do zasięgu. 3.) "Komórki przeznaczone do filtrowania muszą zostać odblokowane, gdy arkusz jest chroniony." ... więc po prostu nie włączaj tych "komórek filtrujących" jako części zablokowanego zakresu. https://msdn.microsoft.com/en-us/library/office/ff839866.aspx –