Транспонирование таблиц в Word с использованием VBA - PullRequest
1 голос
/ 04 октября 2010

Я пытаюсь написать метод для транспонирования таблиц в Word, используя Visual Basic и объектную модель Excel.Однако у меня возникли проблемы с использованием команды paste special с скопированным объектом Word, поскольку это не просто текст.

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

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

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

Ответы [ 2 ]

1 голос
/ 05 октября 2010

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

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
1 голос
/ 04 октября 2010

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

oXlApp.ActiveCell.PasteSpecial Paste:=xlPasteValues, Transpose:=True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...