2010-10-04 2 views
1

Я пытаюсь написать метод переноса таблиц в Word с помощью Visual Basic и объектной модели Excel. Тем не менее, у меня возникли проблемы с использованием специальной пасты с скопированным объектом Word, поскольку это не просто текст.Перемещение таблиц в Word с помощью VBA

Можно ли принудительно вставить обычную текстовую пасту с транспозицией? Есть лучший способ сделать это?

Мой текущий код выглядит следующим образом:

Public Sub transposeTable() 

Selection.Copy 
Dim oXlApp As New Excel.Application 
Dim oXlBook As Excel.Workbook 
Set oXlApp = CreateObject(Class:="Excel.Application") 
Set oXlBook = oXlApp.Workbooks.Add 
oXlBook.Sheets(1).Range("A1").Select 
oXlApp.ActiveCell.PasteSpecial Transpose:=True 
oXlBook.Sheets(1).Cells.SpecialCells(xlCellTypeConstants).Select 
oXlApp.Selection.Copy 
Selection.Paste 
End Sub 

Ошибка Я ПОЛУЧАТЬ является:

Run-time error '1004': 
PasteSpecial method of Range class failed 

ответ

1

Мне удалось заставить его работать сейчас, используя промежуточный шаг пасты.

Public Sub transposeTable() 

Selection.Cut 
Dim oXlApp As New Excel.Application 
Dim oXlBook As Excel.Workbook 
Set oXlApp = CreateObject(Class:="Excel.Application") 
Set oXlBook = oXlApp.Workbooks.Add 
oXlBook.Sheets(1).Range("A1").Select 
oXlApp.ActiveSheet.Paste 
oXlBook.Sheets(1).Cells.SpecialCells(xlCellTypeConstants).Select 
oXlApp.Selection.Copy 
oXlBook.Sheets(2).Select 
oXlBook.Sheets(2).Range("A1").Select 
oXlApp.ActiveCell.PasteSpecial Transpose:=True 
oXlBook.Sheets(2).Cells.SpecialCells(xlCellTypeConstants).Select 
oXlApp.Selection.Copy 
Selection.Paste 
oXlBook.Close (False) 
oXlApp.Quit 
End Sub 
+0

Для дальнейшего использования вам нужно добавить ссылку на «Библиотека объектов Microsoft Excel» в «Инструменты» -> «Ссылки ...» окна редактора VB, иначе это вызовет ошибки. – James

1

Вы пробовали наклеивать без форматирования?

oXlApp.ActiveCell.PasteSpecial Paste:=xlPasteValues, Transpose:=True 
+0

Спасибо, но это тоже не помогает. Я добавил сообщение об ошибке, которое я задаю. – James

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