Dot-Net
“您不能編輯此選擇,因為它受到保護。”但僅從 Office 2013 開始?
幾年來,我們已經讓這幾行程式碼在我們的應用程序中愉快地執行(以及在 Office 的多個版本中,2003、2007、2010 等)。目的是在 Word 文件中執行一種郵件合併,用數據庫中的名稱、地址等替換欄位佔位符:
Dim w As Word.Application Dim d As Microsoft.Office.Interop.Word.Document = Nothing…
Dim f As Microsoft.Office.Interop.Word.Field For Each f In d.Fields f.Select() If fieldName = w.Selection.Text Then f.Result.Text = value End If Next但是,執行 Office 2013 的使用者線上報告此錯誤
f.Result.Text = value:System.Runtime.InteropServices.COMException (0x800A17EC):您不能編輯此選擇,因為它受到保護。
因此,這僅在使用者執行 Office 2013 並且針對此錯誤的線上幫助很少時才會發生。
文件的任何部分都不受保護,使用者可以直接在 Word 中編輯文件而不會出現任何問題。
絕望中,即使在部落格文章和討論中尋找答案也與此特定錯誤相去甚遠,似乎 Office 2013 中對 ReadingLayout 的預設處理方式發生了變化。
引入這條線
w.ActiveWindow.View.ReadingLayout = False似乎已經解決了我們的問題。
我們有一些 C# 自動化在 Word 2007/2010 中執行良好,但在 Word 2013 中停止,並出現相同的“不允許…”警告。
按照本網站上的步驟解決了該問題。
基本上有兩個設置要檢查:
- 文件——選項——正常。取消選中“在閱讀視圖中打開電子郵件附件和其他不可編輯的文件”
- 文件——選項——信任中心——信任中心設置。選擇受保護的視圖,然後清除所有復選框。