Я создал документ Excel для инвентаризации на основе серийного номера.Документ состоит из четырех листов: Основной, Хранение, Входящая история и Исходящая история.На главном листе у меня есть пять столбцов: «Дата», «Проездной документ», «Тип оборудования», «Серийный номер» и «Комментарии».
Я создал макрос VBA для передачи данных (несколько строк с порядковыми номерами) от основного листа, до соответствующих столбцов на «Хранилище» и Входящие / исходящие.Пока все хорошо.
Проблема возникает, когда я пытаюсь закодировать VBA для удаления строк из листа хранения.Я хочу сравнить столбцы с типом оборудования и серийным номером на основном листе с соответствующими двумя столбцами на листе хранения.С некоторой помощью, просмотрев другие коды на этом форуме, мне удалось создать vba, которая сравнивает столбец с серийным номером на обоих листах, а затем удалил строки Equal.Используя этот код:
Sub Utmeld()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
With Sheets("storage")
.Select
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
.DisplayPageBreaks = False
Firstrow = .UsedRange.Cells(1).Row
Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
For Lrow = Lastrow To Firstrow Step -1
With .Cells(Lrow, "F")
If Not IsError(Application.Match(.Value, Sheets("Main").Range("F1:F200"), 0)) Then .EntireRow.Delete
End With
Next Lrow
End With
ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub
Однако проблема заключается в том, что я могу наткнуться на разные типы оборудования с одинаковыми серийными номерами, поэтому мне нужно включить столбец E в сравнение.Простой псевдокод: если столбцы E & F на главном листе = столбцы E & F на листе хранения, то удалите всю строку.
Любая помощь в том, как решить эту проблему, очень ценится!