Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel复制(目标:=)在VB.NET中失败_Excel_Vb.net_Excel Interop - Fatal编程技术网

Excel复制(目标:=)在VB.NET中失败

Excel复制(目标:=)在VB.NET中失败,excel,vb.net,excel-interop,Excel,Vb.net,Excel Interop,我正在使用copy(目标:=),希望将一个excel中的整个记录复制到另一个excel文件,但未能执行。可能是因为需要使用范围?因为没有必要使用范围,因为我想复制所有内容并粘贴到另一个excel文件中 oWorkBook.Sheets(1).Cells.Copy(Destination:=oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTyp

我正在使用copy(目标:=),希望将一个excel中的整个记录复制到另一个excel文件,但未能执行。可能是因为需要使用范围?因为没有必要使用范围,因为我想复制所有内容并粘贴到另一个excel文件中

oWorkBook.Sheets(1).Cells.Copy(Destination:=oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1))
它提到的错误如下

“范围类的复制方法失败”

我以前的代码如下

oWorkBook.Sheets(1).Cells.Copy()
oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1).Select()
oWorkBookOri.Sheets(1).Paste
它会保留错误消息“System.Runtime.InteropServices.COMException(0x800A03EC):工作表类的粘贴方法失败”,尽管如此,我还是更改为复制目标语法,并如上所述出现错误。

如果使用.Cells.copy()作为工作表上的每个单元格,则目标必须是范围(“A1”)否则,没有足够的空间容纳复制的单元格。我假设您只想复制使用过的行,在这种情况下,请尝试

Dim rngSource As Range, rngTarget As Range, targetRow As Long

rngSource = oWorkbook.Sheets(1).UsedRange
With oWorkbookOri.Sheets(1)
    targetRow = .UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1
    rngTarget = .cells(targetRow, rngSource.Column)
End With

rngSource.Copy(rngTarget)
MsgBox("Copied " & rngSource.Address & " to " & rngTarget.Address, vbInformation)

我试图修改下面的代码

如前所述,它仍然存在错误

“范围类的复制方法失败”


你能解释一下你的意思吗。如果使用.Cells.copy()复制整个工作簿,则可能需要将其粘贴到目标工作表上的单元格(A1)。UsedRangeCopy.whole records表示该工作表中的所有记录,您能帮我告诉我在哪里更改代码吗?是的,但所有记录都意味着所有10485576行,如果您粘贴到目标目的地工作表中,这些记录将覆盖任何现有记录。如果您想这样做,请使用Destination:=oWorkBookOri.Sheets(1).Range(“A1”)哦,但是Destination将是不同的单元格,这就是我在Destination中定义范围的原因,您能帮助我吗?是否应将.cells.copy更改为另一个?如果使用.UsedRangeCopy而不是.cells.copy,则应获取所有具有值的记录。然后你可以粘贴到你的目的地。问题可能是,如果所使用的范围从目标所在的列以外的列开始。这会有问题吗?好的,但我需要粘贴的目标是不同的单元格,因为A1中有以前的数据,我不能覆盖它,你能建议吗?如果你像oWorkBook.Sheets(1)一样修复范围,你会得到错误吗?UsedRange.Copy目标:=oWorkBookOri.Sheets(1).范围(“A1000”)?放入MsgBox(oWorkBook.Sheets(1).UsedRange.address)在复制之前,告诉我范围是什么。这是它显示的内容>$A$2:$U$7Ok使用其他工作簿MsgBox(oWorkbookOri.Sheets(1.UsedRange.address)重复此内容>$A$1:$U$4
oWorkBook.Sheets(1).Cells.Copy(Destination:=oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1))
oWorkBook.Sheets(1).UsedRange.Copy(Destination:=oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1))