私は、このブックを使用してアドバンスフィルタを使用して、ブック内の別のシート内の情報を検索します。excel:保護されたシートを使用した高度なフィルタ
さらに、セルにいくつかの数式を入れて、変更できないようにする必要があるため、シートを保護したいと思いますが、ユーザーに情報が必要なセルもあります。あなたは以下を参照することができます:
問題がある、私は私が私の「フィルタ」ボタンをクリックしたときに、私の高度なフィルタを実行しようとします。
高度なフィルタは保護されたシートでは実行できません。
は、だから、私は「フィルタ」ボタンにこのコードを関連付けられている:
Private Sub Filtrar_Click()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
wks.Unprotect "Password"
Call LimparAntes
wks.Protect "Password", UserInterfaceOnly:=True
Next
End Sub
LimparAntesサブは高度なフィルタを呼び出すルーチンですが、私はまだ私がいるよ同じ過ちを取得します疑問に思う。コードは次のとおりです。
Sub LimparAntes()
'
' LimparAntes Macro
'
'
Dim Lastrow As Long
Lastrow = Sheets("AUX").Range("A" & rows.Count).End(xlUp).Row
Sheets("AUX").Range("A1:K" & Lastrow).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("CONSULTA").Range("D34:I35"), CopyToRange:=Sheets("CONSULTA").Range("B40:K40"), Unique:= _
False
Sheets("CONSULTA").Range("F37").Select
End Sub
これは正しい方法ですか?私は多くの研究をしましたが、私はAdvanced Filterと同じ問題を抱える人を見つけることができませんでした。私が望むものを達成することが可能かどうかはわかりません。
シートが保護されている場合、ロックされていないセルは、*ロックされていません。ユーザーが数式を改ざんできないようにするには、これらのセルをロックする必要があります。 「LimparAntes」は何をしていますか? –
@ Mat'sMug申し訳ありませんが、私はすでにそれを修正しました。私は、ユーザーのためにロックされる必要があるセルに値を変更することができます。 'LimparAntes'は私の条件を検索するために私の高度なフィルターを呼び出すサブの名前です。私はそのコードで質問を編集しました。 – paulinhax
*ワークブックも保護されていますか? –