Обновите, если существует, в противном случае вставьте - PullRequest
0 голосов
/ 14 января 2019

У меня есть одна ситуация, и я попытаюсь объяснить ее.

Я получил файл Excel с двумя листами (Sheet 1-Template, Sheet 2-DB). Шаблон используется менеджером, который назначает годовые цели на ежемесячной основе. После определения и утверждения целей данные будут скопированы и вставлены в БД. Но иногда менеджер может изменить цели после утверждения шага.

В этом пункте мне нужно, чтобы, если данные, указанные в Шаблоне, существовали в БД, Обновить, в противном случае вставлять новые строки. На самом деле я написал код для вставки строк, но я не мог написать правильный код для проверки. Пожалуйста, помогите мне в этом вопросе.

Sub MonthlyTargetDB()

Application.ScreenUpdating = False

Dim Target As Workbook:         Set Target = ThisWorkbook
Dim Tmpl As Worksheet:          Set Tmpl = Target.Worksheets("Template")
Dim DB As Worksheet:            Set DB = Target.Worksheets("DB")
Dim i As Integer:               i = DB.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
Dim j As Integer:               j = DB.Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Row

Tmpl.Range("A5").Copy
DB.Range(DB.Range("A" & i), DB.Range("A" & i + 11)).PasteSpecial (xlPasteValues)

Tmpl.Range("B5").Copy
DB.Range(DB.Range("B" & j), DB.Range("B" & j + 11)).PasteSpecial (xlPasteValues)


Tmpl.Range(Tmpl.Range("A8"), Tmpl.Range("B8").End(xlDown)).Copy
DB.Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValuesAndNumberFormats)

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub
...