데이터베이스 응용 프로그램에서 Excel 파일로 데이터를 입력하는 데 VB.net 2005를 사용하고 있습니다.Excel 시트 다시 보호, 자동 필터 활성화
시트의 보호를 해제하고 이름이 지정된 범위를 사용하여 특정 셀에 데이터를 입력 한 다음 시트를 다시 보호하십시오.
자동 필터링 기능을 사용하는 것으로 보호 된 파일을 실행할 때까지 지금까지 문제가 없었습니다. 시트를 다시 보호 할 때 autofilter 드롭 다운을 허용하면서 시트를 보호 할 수 없습니다. 자동 필터의 드롭 다운 화살표는 비활성화되고 비활성화됩니다.
다음 코드를 사용하여 데이터를 입력 한 후 시트를 다시 보호하십시오.
If bolProtected = True Then
For i = 0 To intProtectIndexes.Length - 1
objExcel.Sheets(intProtectIndexes(i)).Select()
objExcel.ActiveSheet.Protect(strPassword)
Next
End If
Tim의 링크 코드를 사용해 보았습니다.
objExcel.Sheets(intProtectIndexes(i)).Select()
objExcel.ActiveSheet.Protect(Password:=strPassword, Contents:=True)
objExcel.activesheet.enableautofilter = True
여전히 채워진 워크 시트에는 자동 필터 드롭 다운이 비활성화되어 있습니다.
VBA에서 매크로 만들기 및 사용 :
ActiveSheet.Protect(Contents:=True, AllowFiltering:=True)
가 잘 작동합니다. 시트가 보호되어 있고 자동 필터 드롭 다운을 사용할 수 있습니다. 그러나 VB.net 프로젝트에서 동일한 코드를 사용하면 드롭 다운이 활성화되지 않습니다.
당신이 무엇을 의미합니까 "자동 필터링 옵션을 허용하면서 보호하기 위해 수없는 것"시도? 어쩌면이 도움이 될 수 있습니다. http://office.microsoft.com/en-us/excel-help/enable-autofilter-functionality-for-a-protected-worksheet-HA001098270.aspx –
시트를 프로그래밍 방식으로 다시 보호 할 때, 데이터를 삽입하기 전에 있던 자동 필터는 더 이상 사용할 수 없습니다. 나는 당신이 준 링크가 답을 가지고 있다고 생각합니다. 대답을하면, 나는 그것을 시험하고 그것이 효과가 있는지보고 당신에게 신용을 줄 것입니다. – KevenDenen