Mam arkusz roboczy do wypełnienia przez moich pracowników i wyliczyłem komórki, które chcę zablokować, aby nie mogły ich zmienić. Wybrałem komórki i wybrane właściwości i upewniłem się, że pole wyboru "blokada" jest zaznaczone. Kiedy chroniłem arkusz roboczy/skoroszyt, przycisk "eksport do csv" przestał działać. W celu umożliwienia makro do uzupełnienia I dodaje ten kod VB do skoroszytu:Jak zablokować komórki zawierające formuły, ale nadal zezwalać na działanie makr?
Private Sub Workbook_Open()
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.Protect Password:="password", _
UserInterFaceOnly:=True
Next wSheet
End Sub
To działało, ale miał niezamierzony efekt uboczny pozwalając moje Zablokowane formuły, aby móc być edytowane chociaż zostały one zablokowane. Tylko komórki zawierające wartości inne niż formuła pozostały zablokowane. Jaki jest właściwy sposób na dopuszczenie makr, ale blokowanie komórek formuł?
Być może trzeba będzie ".Value = Wartość" na bloku formuły i ponownie wstawić formuły z '.Formula =" ... "', gdy chcesz ponownie przeliczyć komórki na nowe dane. Zdarzenie pod nagłówkiem Worksheet_Calculate jest traktowane jako "makro". – Jeeped
@Jeeped Co jeśli należy zmienić 'UserInterFaceOnly' na końcu makra. Proszę spojrzeć na moją odpowiedź i daj mi znać, jeśli to działa. Nie mam teraz dostępu do programu Excel, aby go przetestować. – Masoud
@Masoud - Po prostu z mojej głowy, Workbook_Open jest prywatne do arkusza kodu ThisWorkbook. Nie jestem pewien, czy możesz to nazwać. – Jeeped