Не удается скопировать из Excel и вставить в документ Word с ограниченным доступом к редактированию формы, если ограничение не отключено

Я копирую содержимое ячейки 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

person CorinneGermany    schedule 22.04.2015    source источник


Ответы (1)


Поскольку это поле формы, а не просто закладка, я изменил код, как показано ниже, что решило проблему со странным красным шрифтом. Теперь я могу копировать в защищенный документ.

From
BrandstetterDoc.Bookmarks("Text65").Range.Text = ws.Range("ARZKrankenhaus").Value
To
ActiveDocument.FormFields("Text65").Result = ws.Range("ARZKrankenhaus").Value
person CorinneGermany    schedule 22.04.2015