Я копирую содержимое ячейки Excel в закладку в документе Word с ограниченным доступом к редактированию форм (2010), но оно будет вставлено только в том случае, если защита отключена.
Код, который я в настоящее время должен снова включить защиту после ошибок. Какой правильный код?
Есть ли способ сделать эту копию и вставить, не отключая защиту?
Вторая проблема заключается в том, что при вставке текста в закладку шрифт красный (если вручную вводить в документ, то он черный). По умолчанию Word установлен как черный (я сбросил значение по умолчанию на всякий случай). Ввод нового документа отображается черным цветом, однако, когда Word открывает значок шрифта, он становится красным, хотя при проверке по умолчанию он по-прежнему отображается черным. Могу ли я определить цвет шрифта в VBA, чтобы переопределить эту проблему, пока она не будет решена, или вы можете предложить способ исправить значение по умолчанию для Word?
Sub Arzbericht_Brandstetter()
' x - Defined Cell Names - ARTBrandPATH , ARTBrandDOC
' Excel Word Bookmark
' x - Defined Cell Names - ARZKrankenhaus Text65
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Dim Wd As Object
Dim wdDoc As Object
Dim BrandstetterDoc As Object
Dim BrandstetterPath As String
Dim f As Boolean
BrandstetterPath = ActiveSheet.Range("ARTBrandPATH").Value & ActiveSheet.Range("ARTBrandDOC").Value & ".doc" ' x
' On Error Resume Next
Set BrandstetterDoc = GetObject(BrandstetterPath)
If BrandstetterDoc Is Nothing Then
Set Wd = GetObject(, "Word.Application")
If Wd Is Nothing Then
Set Wd = CreateObject("Word.Application")
If Wd Is Nothing Then
MsgBox "Failed to start Word!", vbCritical
Exit Sub
End If
f = True
End If
Set BrandstetterDoc = Wd.Documents.Open(BrandstetterPath)
If BrandstetterDoc Is Nothing Then
MsgBox "Failed to open Brandstetter Document!" & vbNewLine & _
" Check File Directory is correct", vbCritical
If f Then
Wd.Quit
End If
Exit Sub
End If
Wd.Visible = True
Else
With BrandstetterDoc.Parent
.Visible = True
.Activate
' Turn Protection OFF
With ActiveDocument
.Unprotect "xxxxx"
.Protect wdAllowOnlyRevisions, , Password:="xxxxx"
End With
BrandstetterDoc.Bookmarks("Text65").Range.Text = ws.Range("ARZKrankenhaus").Value
' Turn Protection ON (Restricted Editing)
' ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With
End If
End Sub