2017-02-07 14 views
-1

В настоящее время я пытаюсь сделать макрос в VBA для слова, чтобы пройти через документ и взять каждый экземпляр текстового формата и ввести его в другую строку таблицы. Для этого у меня есть цикл, который циклически проходит через каждый экземпляр этого формата и добавляет его в очередь, и помещает каждый элемент в очередь в другую ячейку в таблице, однако, когда я запускаю программу, я нажимаю ошибку наWord VBA system.collections.queue Issue

Imports System.Collection.Queue 

, в котором говорится: «Ошибка компиляции: метод или элемент данных не найден», и он не позволит мне использовать элементы очереди программы. Остальная часть программы работает нормально. Я предполагаю, что это связано с тем, что VBA не может получить доступ к библиотеке System.Collection.Queue. Есть ли у меня доступ к функциям очереди в VBA или по-другому, я должен реализовать эту программу без использования очереди?

+0

'Imports' не является частью VBA ... –

+0

Вы можете попробовать использовать' CreateObject ("System.Collections.Queue") 'Обратите внимание, что это коллекция * s * с с –

ответ

2
Dim q 
Set q = CreateObject("System.Collections.Queue") 

q.enqueue "A" 
q.enqueue "B" 
q.enqueue "C" 

Debug.Print q.peek '>> "A" 

Do While q.Count > 0 
    Debug.Print q.dequeue 
Loop 
+0

Это работает, и позволяет мне для создания очереди, но у меня возникают проблемы с добавлением выделенного текста в очередь. Итак, я просматриваю текст в документе, используя Selection.Find, а затем выбираю текст, как бы добавить его в очередь? – user3418902

+0

Вы пробовали 'q.enqueue Selection.Text'? –

+0

Извините, он работал, я просто вставлял выделенный текст поверх выбранного текста, чтобы он исчез. Спасибо за помощь! – user3418902

 Смежные вопросы

  • Нет связанных вопросов^_^