Excel 2010 - Ich habe ein Arbeitsblatt mit der Bezeichnung "DATA1" und in diesem Beispiel wurde die gesamte Arbeitsmappe für die Benutzer nur bestimmte Zellen geschützt. Obwohl ich Spalten ("L: N") habe, die Duplikate bei Nicht gesperrt entfernen möchten, entfernt der Code keine Duplikate. Die Methode zum Aufheben des Schutzes der gesamten Arbeitsmappe und zum erneuten Schützen ist bei allen Aktionen, die der Code durchlaufen muss, keine praktikable Option. Hinweis: Wenn der Administrator die gesamte Datei ungeschützt hat, wird der Code einwandfrei ausgeführt.Excel VBA entfernen Duplikate, wenn Arbeitsmappe geschützt, obwohl Zellen nicht gesperrt sind
es mit dieser Fehlermeldung auf dem folgenden Code hängt - „Laufzeitfehler‚1004‘: Anwendung definiert oder Objekt definiert Fehler:
ActiveSheet.Range("L1:N200").RemoveDuplicates Columns:=Array(1, 2, 3), _
Header:=xlYes
Nachdem das gesamte Blatt Entriegeln, dachte sogar die gesamte Arbeitsmappe geschützt ist, stoppt er nun in der ersten Zeile des Codes:
Sheets("DATA1").Range("List_FTE_Names").ClearContents
Hier ist mein Code:
Sub mcr_FTE_Names()
'Clear contents in the FTE Names columns for a clean slate
Sheets("DATA1").Range("List_FTE_Names").ClearContents
'Copy FTE Names columns from Labor Forecast Detail
Sheets("Labor Forecast Detail").Range("List_FTE_Names_Forecast").Copy
'Paste Special Values of data just copied
Sheets("DATA1").Range("List_FTE_Names").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
'Remove Duplicates
Sheets("DATA1").Range("List_FTE_Names").RemoveDuplicates Columns:=Array(1, 2, 3), _
Header:=xlYes
'Sort Alphabetically
ActiveWorkbook.Worksheets("DATA1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("DATA1").Sort.SortFields.Add Key:=Range("L2:L800") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("DATA1").Sort.SortFields.Add Key:=Range("M2:M800") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("DATA1").Sort.SortFields.Add Key:=Range("N2:N800") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("DATA1").Sort
.SetRange Range("List_FTE_Names")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
MsgBox "Your Resources have been consolidated and alphabetized," & vbNewLine & "you will now proceed back to the Home page."
Sheets("Home").Select
Range("A1").Select
End Sub
Alle Gedanken und/oder Richtung würde am meisten geschätzt werden. Vielen Dank für Ihre Suche.
Hier ist meine ProtectAll_Admin() Code, wenn es hilft:
Sub ProtectAll_ADMIN()
Dim ws As Worksheet
Dim pWord1 As String
Dim pWord2 As String
For Each ws In Worksheets
If ws.ProtectContents Then
MsgBox ActiveWorkbook.Name & " is already protected.", vbCritical
Exit Sub
End If
Next ws
' To Hide all rows and columns for editing
Call mcr_HideRowsColumns_ADMIN
pWord1 = InputBox("Please Enter the password")
If pWord1 = "" Then Exit Sub
pWord2 = InputBox("Please re-enter the password")
If pWord2 = "" Then Exit Sub
'Make certain passwords are identical
If InStr(1, pWord2, pWord1, 0) = 0 Or InStr(1, pWord1, pWord2, 0) = 0 Then
MsgBox "You entered different passwords. No action taken!"
Exit Sub
End If
For Each ws In Worksheets
ws.Protect Password:=pWord1
'ws.Protect UserInterfaceOnly:=True
ws.Protect AllowFiltering:=True
Next
MsgBox "All Sheets have been Protected" & vbNewLine & "and the File is ready for the PM."
End Sub
Ich bin mir nicht sicher, ob workbook.protect die Zellen blockiert. Ich dachte, es verhindere nur, dass neue Blätter hinzugefügt oder verschoben werden. Sind Sie sicher, dass ein bestimmtes Blatt nicht geschützt ist? –
@JohnMuggins - Der Code zum Schutz der Arbeitsmappe ist für jedes ws In Worksheets ws.Protect Passwort: = pWord1 ws.Protect AllowFiltering: = True Allerdings habe ich viele entsperrte Zellen für die Manager in der Zeit für ihre eingeben FTEs. Ich kann sogar die oben genannten Zellen bearbeiten, weil sie freigeschaltet sind. Es verblüfft mich unglaublich. Ich möchte keine Problemumgehung erstellen, die für den Manager oder den Administrator abscheulich ist. –
Im geschützten Blatt sind viele Optionen wie Datenüberprüfung, Filter, Entfernen von Duplikaten usw. deaktiviert. In Ihrem VBA-Code können Sie Blätter ("DATA1"). Passwortschutz: = "pWord1" und Blätter ("DATA1"). Passwort schützen : = „pWord1“ – Unknown