代码之家  ›  专栏  ›  技术社区  ›  James

使用VBA在Word中就地转置表

  •  1
  • James  · 技术社区  · 16 年前

    是否可以使用转置强制纯文本粘贴?有更好的办法吗?

    我目前的代码如下:

    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 回复  |  直到 16 年前
        1
  •  1
  •   Mark    16 年前

    你试过没有格式的粘贴吗?

    oXlApp.ActiveCell.PasteSpecial Paste:=xlPasteValues, Transpose:=True
    
        2
  •  1
  •   James    16 年前

    我已经设法让它工作了,使用一个中间的粘贴步骤。

    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
    
    推荐文章