首页 文章

除非禁用限制,否则无法从Excel复制并粘贴到表单编辑受限Word文档

提问于
浏览
0

我正在将Excel单元格内容复制到Form Edit restricted(2010)Word文档上的书签,但只有在保护功能关闭时才会粘贴 .

我目前必须在以后的错误中再次启用保护 . 什么是正确的代码?

有没有办法在不关闭保护的情况下进行复制和粘贴?

第二个问题是,当文本粘贴到书签时,字体为红色(如果在文档上手动输入,则为黑色) . 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

1 回答

  • 0

    因为它是一个Formfield而不仅仅是一个书签,我改变下面的代码解决了奇怪的红色字体问题 . 我现在可以复制到受保护的文件 .

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

相关问题