У меня есть один файл Excel с тремя листами в нем. А именно: «Форма заявки», «Форма заказа звонка» и «Сводная ведомость». Я хотел бы скопировать все значения, которые больше 0 в «Столбец F» и Столбец I в «Сводная ведомость», и вставить его в лист «Форма заказа на вызов» в столбцах, начинающихся с F16 и G16. Ниже приведен код VBA, который я написал. Но я не знаю, почему это не выполняется. Я получаю ошибку в этом. Пожалуйста, помогите мне исправить код.
Форма заказа вызова:
Сводная ведомость:
Option Explicit
Private Sub CommandButton1_Click()
Worksheets("Call Order Form").Range("A16:G29").ClearContents
Dim wb As Workbook
Dim wsData As Worksheet
Dim wsDest As Worksheet
Dim rDest As Range
Set wb = ActiveWorkbook
Set wsData = wb.Worksheets("Summary Sheet")
Set wsDest = wb.Worksheets("Call Order Form")
Set rDest = wsDest.Cells(wsDest.Rows.Count, "F").End(xlUp).Offset(1)
If rDest.Row < 15 Then Set rDest = wsDest.Range("F16")
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
End With
With wsData.Range("F7:H" & wsData.Cells(wsData.Rows.Count, "F").End(xlUp).Row)
If .Row < 6 Then GoTo CleanExit 'No data
.AutoFilter 1, ">0", xlFilterValues 'Filter on column F for values >0
Intersect(.Worksheet.Range("F:F,I:I"), .Offset(1)).Copy 'Copy filtered values in columns F and I only
rDest.PasteSpecial xlPasteValues 'Paste values only to destination
.AutoFilter 'Clear filter
End With
CleanExit:
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub