Мой код, указанный ниже, должен фильтровать данные в wsData, а затем скопировать его в лист wsTest один за другим в столбце A. Код работает, за исключением того, что он копирует значения по каждому из листов назначения а не друг за другом. Любая идея почему?Данные фильтра и значения копирования VBA
Sub PrintReport()
Dim wbFeeReport As Workbook
Dim wsData As Worksheet
Dim wsForm As Worksheet
Dim wsTest As Worksheet
Dim FrRngCount As Range
Dim i As Integer
Dim k As Integer
Dim t As Integer
Dim s As Integer
Set wbFeeReport = Workbooks("FeExcForm.xlsm")
Set wsData = wbFeeReport.Worksheets("Data")
Set wsTest = wbFeeReport.Worksheets("Test")
wsTest.Cells.Clear
wsData.Activate
i = 1
For k = 1 To 2
With ActiveSheet
.AutoFilterMode = False
With Range("A1", Range("A" & Rows.Count).End(xlUp))
.AutoFilter 1, k
On Error Resume Next
.SpecialCells(xlCellTypeVisible).Copy Destination:=wsTest.Range("A" & i)
End With
i = wsTest.Range("A" & Rows.Count).End(xlUp)
.AutoFilterMode = False
End With
Next k
End Sub
Почему «ошибка» при использовании этой необходимости вам понадобится еще одна строка в коде, в котором включена ошибка. 'on error goto 0' –
Try' Destination: = wsTest.Range ("A" & i + 1) '. В вашем вычислении i появится последняя используемая строка, а не первая неиспользуемая строка. – OldUgly
Спасибо за советы ребятам. @Scott Приятно знать, я буду помнить об этом. @ OldUgly Я предполагаю, что это было частью проблемы. –