Копирование Excel (назначение: =) не удалось в VB.NET - PullRequest
0 голосов
/ 06 марта 2020

Я использую copy (Destination: =) и хотел бы скопировать целые записи из одного файла Excel в другой файл Excel, но выполнить не удалось. Может ли это из-за необходимости использовать диапазон? Поскольку нет необходимости использовать диапазон, поскольку я хотел бы скопировать все и вставить в другой файл Excel

oWorkBook.Sheets(1).Cells.Copy(Destination:=oWorkBookOri.Sheets(1).Range("A" & oWorkBookOri.Sheets(1).UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell).Row + 1))

В нем упоминается ошибка, как показано ниже.

"Метод копирования Range класс не выполнен ".

Мой предыдущий код, как показано ниже

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 (0x800A03E C): Вставить сбой метода класса Worksheet ", и, несмотря на это, я изменил синтаксис назначения и произвел ошибку, как упомянуто выше.

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Я пытаюсь изменить приведенный ниже код

С

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))

По-прежнему возникает ошибка, как указано

"Ошибка копирования метода класса Range".

0 голосов
/ 06 марта 2020

Если вы используете .Cells.Copy (), который является каждой ячейкой на листе, местом назначения должно быть Range («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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...