Условное копирование данных с одного листа на другую книгу - PullRequest
0 голосов
/ 15 марта 2020

Мне нужно скопировать данные с одного листа на другой, выполнив следующие условия:

1) Пользователь должен выбрать / просмотреть файл, из открытого файла он копирует данные из столбца A в столбец D из sheet1

2) Столбец A имеет уникальные номера, в то время как столбец C & D имеет дублирование, он должен игнорировать duplicate.it копирует только уникальные номера в столбце A и соответствующие им данные в столбце B, C & D

3) Вставляет файл Data in Dashboard (основной файл) в лист RawData в столбце AH в AK, просматривая последнюю использованную строку Image: как показано на рисунке, он должен копировать выделенные данные и игнорировать дублирование

Я написал код ниже, но он не соответствует моим требованиям, пожалуйста, помогите мне

Private Sub copy()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long
Dim FileToOpen As Variant
Dim OpenBook As Workbook

Application.ScreenUpdating = False

FileToOpen = Application.GetOpenFilename(Title:="Browse for Berkhund File & Import", 
FileFilter:="Excel Files (*.xls*),*xls*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)

'Set variables for copy and destination sheets
Set wsCopy = OpenBook.Sheets(1)
Set wsDest = ThisWorkbook.Worksheets(1)

'1. Find last used row in the copy range based on data in column A
 lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row

'2. Find first blank row in the destination range based on data in column AH
 'Offset property moves down 1 row
 lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "AH").End(xlUp).Offset(1).Row

'3. Copy & Paste Data
wsCopy.Range("A2:D" & lCopyLastRow).copy _
wsDest.Range("AH" & lDestLastRow)
OpenBook.Close False
'Optional - Select the destination sheet
wsDest.Activate

'End Sub
End If
Application.ScreenUpdating = True

Sheets("RawData").Activate

End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...