复制Excel数据并转换到VB.NET中的另一个工作表

时间:2016-01-05 15:49:14

标签: vb.net excel

''''''''Public Variables Module'''''''

    Public oXL As Microsoft.Office.Interop.Excel.Application
    Public oWB As Microsoft.Office.Interop.Excel.Workbook
    Public oSheet As Microsoft.Office.Interop.Excel.Worksheet

''''''''End Public Variables Module''''''''


'''''''''Form1.vb'''''''''''


        oXL = New Excel.Application
        oXL.Visible = True        

 oWB = oXL.Workbooks.Add


        oSheet = oWB.ActiveSheet

        oWB.Worksheets(1).range("a1").select()
        oWB.Worksheets(1).Paste()

        oSheet.UsedRange.Copy()
        oWB.Worksheets.Add()
        oWB.Worksheets("Sheet2").range("a1").select()
        oWB.Worksheets("Sheet2").PasteSpecial(Transpose:=True)


'''''''''End Form1.vb'''''''''''

它在pastespecial专线上崩溃并出现错误:

附加信息:来自HRESULT的异常:0x800A03EC

我试过跳过范围(“a1”)。在sheet2上选择步骤无效。

我应该补充一点,我在将数据粘贴到第一个工作表之前将其重新复制并粘贴到第二个工作表的原因是因为数据已经从外部应用程序放在剪贴板上了,我假设它不是当来自外部源的数据时,可以将其转置到初始粘贴上。

如果我将pastespecial更改为普通粘贴,它可以正常工作。所以我假设我的pastespecial命令出了问题。

我尝试在运行应用程序之前将多种形式的数据复制到我的剪贴板,因此它与不可转移的特定数据集无关。

我还验证了它实际上是在复制之前选择usedrange(与整张表格相比)。

1 个答案:

答案 0 :(得分:0)

想出来,还需要指定一个范围:

oWB.Worksheets("Sheet2").range("a1").PasteSpecial(Transpose:=True)