VBA паста из Excel до слов заканчивается
-
23-12-2019 - |
Вопрос
Общая цель - принять RTF отформатированный текст в Excel и преобразовать его в HTML.Мне не удалось добраться до Excel, чтобы ответить разумным способом, так что пытался использовать слово.Я могу преобразовать слово без проблем, поэтому хочу автоматизировать процесс, скопировав Excel со клетки, вставляю в слово, а затем запустить код для преобразования форматирования в то, как я хочу.
Я бегу в проблему, когда я вставляю в слово из Excel VBA, паста успешна, но затем она перепрыгивает на End Sub
.
Sub webtext(r As String)
Range(r).Copy
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Set wordApp = CreateObject("word.Application")
Set wordDoc = wordApp.Documents.Add
wordApp.Visible = True
wordApp.Activate
wordApp.Selection.PasteSpecial
'Any code here is missed out
z = MsgBox("tada") 'this will never trigger
x=5 'this will never set
With wordDoc
'Operations on the text pasted would happen here
'but vba never gets here.
End With
'Code jumps to here
End Sub
.
Я попробовал использовать WOOTDOC, так и WOOTAPP, так и в пасте, так и неспециализированном, но он всегда имеет тот же результат.
У кого-нибудь есть какие-либо идеи относительно того, что происходит здесь, или как остановить его от того, что он всегда заканчивается после пасты.
Редактировать: Я проверил это, и он работал на Office 2010. Он не работает на Office 2013.
Решение 2
, кажется, решается.Отладчик VBA не может понять, что происходит после того, как оно попадает в раздел Wordapp, и поэтому код появится , чтобы перейти к концу секции.
Дополнительно, кажется, что любые изменения слов должны быть выполнены в разделе «Генеракодицетагкод», поскольку он может быть немного нечетным при правильном ударе ударенного удара в течение которого (хотя никогда не выясняется, почему не хватает коробки сообщений в первый раз).>
Спасибо @brettdj за помощь с тестированием и извинения за мою ошибку в понимании того, что происходит.
Другие советы
Это работало нормально для меня, как это
Но предложить вам попробовать эти настройки, чтобы увидеть, если это работает (AppActivate
избыточна).
Sub StartIt()
Call webtext("a1:a10")
End Sub
.
Sub webtext(r As String)
Range(r).Copy
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Set wordApp = New Word.Application
Set wordDoc = wordApp.Documents.Add
wordApp.Visible = True
With wordDoc
.ActiveWindow.Selection.Paste
End With
End Sub
.