Я использую макрос, чтобы заполнить документ слова текстом из названных диапазонов в excel. В документе документа есть закладки, соответствующие указанным диапазонам excel. Я не написал код, а скопировал его из другого источника.Ошибка 1004 с кодом VBA с закладками
Это макрос немного больше, чем опубликованный фрагмент. Я мог бы написать остальное, если это полезно. У меня было около половины моего документа с документом, и макрос работал нормально, после чего он внезапно прекратил работать.
Я принимаю ошибку 1004 в строке, выделенной ниже. Я новичок, поэтому я даже не уверен, что я должен искать, чтобы исправить эту проблему. Любая помощь, которую вы могли бы предоставить, была бы оценена! Заранее спасибо!
P.S. В случае, если это имеет значение, я использую Word и Excel 2007
'PASTE TEXT STRINGS LOOP
n = 1
For Each temp In BkmTxt
p = p + 1
Prompt = "Please wait. Copying text. Carrying out operation " & p & " of " & pcount & "."
Application.StatusBar = Prompt
'If The Bkmtxt(n) is empty then go to the next one, once that has been found do next operation.
If BkmTxt(n) = Empty Then
n = n + 1
'should find match and work
Else
'You might want to use multiple copies of the same text string.
'In this case you need to call the bookmark as follows: "ARTextWhatever_01"
'You can use as many bookmarks as you want.
BkmTxtSplit = Split(BkmTxt(n), "_")
vValue = Range(BkmTxtSplit(0)).Text **<----- ERROR HERE**
Set wdRng = wdApp.ActiveDocument.Bookmarks(BkmTxt(n)).Range
If Len(sFormat) = 0 Then
'replace the bookmark text
wdRng.Text = vValue
Else
'replace the bookmark text with formatted text
wdRng.Text = Format(vValue, sFormat)
End If
'Re-add the Bookmark
wdRng.Bookmarks.Add BkmTxt(n), wdRng
n = n + 1
End If
Next
Как я вижу, 'BkmTxt' представляет собой массив двойных закладок, каждый элемент массива содержит две фактические закладки, соединенные подчеркиванием. В качестве альтернативы, 'BkmTxt' может представлять собой диапазон ячеек, который содержит те же имена двойной закладки. Способы борьбы с ними варьируются. Не могли бы вы уточнить? – Jeeped
Я не совсем уверен, понимаю ли я ваш вопрос, но для уточнения, BkmTxtSplit означает разделение закладки на подчеркивание, чтобы можно было повторить закладку в нескольких местах в документе слова. В этом случае, например, одна из закладок в документе слова непосредственно соответствует названной ячейке диапазона «ARTextName» в моем документе excel. В этом случае именованные ячейки диапазона в excel содержат заголовок моего отчета. Я хочу разместить заголовок отчета в нескольких местах в документе слова. Для этого я вставляю закладки с надписью ARTextName_01, ARTextName_02 и т. Д. Это помогает? – jazzy