Ошибка при вставке данных из другой рабочей книги | рабочий лист VBA - PullRequest
0 голосов
/ 14 февраля 2020

У меня ошибка при вставке данных в новую рабочую книгу, рабочая книга, в которую я вставляю данные, имеет заголовок, и он вставляет его оттуда. В первом редактировании не было установлено wbCopyFrom, wsCopyFrom, wbCopyTo, wsCopyTo, потому что когда я впервые попробовал макрос, он не принял его во внимание и просто вставил данные в книгу, я ссылаюсь на

Sub RechazosOnline()
Dim rsh As Worksheet, wb As Workbook
Dim wbCopyFrom As Workbook, wsCopyFrom As Worksheet

Set wb = Workbooks("2. Detalle_Transacciones_pendientes_rechazadas_MDM_27Ene20.xlsx")
Set wbCopyFrom = Workbooks("1. ReporteGeneral_TransaccionesDiariasMDM_20200115")
Set wsCopyFrom = wbCopyFrom.Worksheets("Detalle")
wsCopyFrom.Range("A2:I" & wsCopyFrom.Range("A" & Rows.Count).End(xlUp).row).Copy

For Each rsh In wb.Sheets
         rsh.Range("A2:I" & rsh.Range("A" & rsh.Cells.Rows.Count).End(xlUp).row).PasteSpecial xlPasteValues
     Next
End Sub

Во втором редактировании я установил wbCopyFrom, wsCopyFrom, wbCopyTo, wsCopyTo, но получил тот же результат

Sub RechazosOnline()
    * Im pasting the same data into the two sheets of the workbook, so rsh is generic
    Dim rsh As Worksheet 
    Dim wbCopyFrom As Workbook, wsCopyFrom As Worksheet, wbCopyTo As Workbook

    Set wbCopyTo = Workbooks("2. Detalle_Transacciones_pendientes_rechazadas_MDM_27Ene20.xlsx")
    Set wbCopyFrom = Workbooks("1. ReporteGeneral_TransaccionesDiariasMDM_20200115")
    Set wsCopyFrom = wbCopyFrom.Worksheets("Detalle")
    wsCopyFrom.Range("A2:I" & wsCopyFrom.Range("A" & Rows.Count).End(xlUp).row).Copy

    For Each rsh In wbCopyTo.Sheets
             rsh.Range("A2:I" & rsh.Range("A" & rsh.Cells.Rows.Count).End(xlUp).row).PasteSpecial xlPasteValues
         Next
    End Sub

1 Ответ

1 голос
/ 14 февраля 2020

Проблема только в том, что данные вставляются поверх заголовка? Если это так, просто Offset вставьте строку по одному.

rsh.Range("A2:I" & rsh.Range("A" & rsh.Cells.Rows.Count).End(xlUp).Offset(1).Row).PasteSpecial xlPasteValues

Я считаю, что это немного чище

Dim LR as Long

For Each rsh In wbCopyTo.Sheets
    LR = rsh.Range("A" & rsh.Rows.Count).End(xlUp).Offset(1).Row
    rsh.Range("A" & LR).PasteSpecial xlPasteValues
Next rsh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...