2013-08-07 71 views
0

我有一個的VBScript(儘管我可以涉及VBA),其具有:VBA/VBS粘貼在字段在Word不工作2013

Set selection = application.Selection 
With document.Fields.Add(selection.Range, 35, "Default" , True) 
    .Result.Paste 
    ... 

注:文檔變量已被聲明之前和35,如果字段類型引用。

問題 在早期版本的Word,粘貼將在該領域本身進行,因此更換爲新文本「默認」文本,但在Word 2013,這將導致刪除「默認」的文本和粘貼數據作爲純文本之前的字段。所以你會以純文本和空白字段結束。

+0

請添加一些周圍的代碼。特別是,如何將application.Selection設置爲字段內容?我的直覺是2013年的選擇範圍不同,我有類似的問題。 –

回答

0

我做了一個解決方法,使用選擇將其粘貼到字段中。

Set application = GetObject(, "Word.Application") 

Function PasteInField(f) 
    Set s = application.Selection 
    'select all except last char and paste data instead of it 
    f.Result.Select 
    s.SetRange s.Start, s.Start+Len(f.Result.Text)-1 
    s.Paste 
    'select last char and remove it 
    f.Result.Select 
    s.SetRange s.End-1, s.End 
    s.Delete 
end Function 

它將基本上選擇除最後一個字符以外的所有字符,然後粘貼,最後刪除剩餘的字符。我的領域是這樣創建的:

set field = application.ActiveDocument.Fields.Add(selection.Range, 35, "DEFAULT" , True)