我正在将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 回答
因为它是一个Formfield而不仅仅是一个书签,我改变下面的代码解决了奇怪的红色字体问题 . 我现在可以复制到受保护的文件 .