У меня есть автоматизированными подали, что выходит с рядом (4) заголовкамиотфильтрованных Просмотры VBA Excel
первого столбца (A) содержит различные категории (типы оплаты), в основе конкретного типа I Would выполните другой тест, основанный на определенном листе, содержащемся в файле, над которым я работаю.
Что я делаю в данный момент, в основном создаю фильтр (из первого столбца A) в зависимости от типа оплаты, который я хочу проверить, создайте временный лист, скопируйте его в отфильтрованное представление, работайте с ним проверяет, а затем копирует/вставляет результат (содержащийся в столбце R) в основной лист.
Проблема возникает в последней части, когда я хочу скопировать пасту из-за отфильтрованного представления. Я не могу просто перейти в первую свободную ячейку под заголовком R и скопировать пасту, потому что система doesn ' Понимаю, я перехожу в отфильтрованный вид. Я должен быть уверен, что я скопирую правильные результаты в базе значения (строки), содержащегося в столбце A), можете ли вы помочь мне решить эту проблему?
Другой способ - сделать для каждого цикла, но на самом деле я не уверен, как его структурировать.
Здесь мы имеем часть кода я работаю над
Sub Payexample()
' normal cleaning procedures
Sheets("Payexample").Select
Rows("1:10").Select
Selection.Delete Shift:=xlUp
Columns("J:J").Select
Selection.Replace What:="AED", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.NumberFormat = "0.00"
Sheets("Sheet1").Select
ActiveSheet.Range("$A$4:$A$500").AutoFilter Field:=1, Criteria1:="Payfort"
Range("A5 : N5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Payfort momentary"
Range("A1").Select
ActiveSheet.Paste
Range("$M$1").Formula = Range("B1") & (",") & Range("M1")
Dim Lastrow As Long
Application.ScreenUpdating = False
Lastrow = Range("J" & Rows.Count).End(xlUp).Row
Range("O1").FormulaR1C1 = "=IF(RC[-2]-VLOOKUP(RC[-3],'PayFort'!B:J,9,FALSE)<=0.99, ""Payfort Payment Checked"", ""Manual Verification Needed"")"
Range("O1").AutoFill Destination:=Range("O1:O" & Lastrow)
Range("O1:O" & Lastrow).Select
Selection.Copy
Sheets("Sheet1").Select
ActiveSheet.Range("$A$4:$A$500").AutoFilter Field:=1, Criteria1:="Payfort"
Range("R5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Sheets("Payfort Momentary").Select
'ActiveWindow.SelectedSheets.Delete
End Sub
Извините, docendo, я добавил предложенные теги. Виноват. Спасибо за редактирование – Froz
Если я правильно понял, когда вы пытаетесь вставить результаты обратно в отфильтрованные данные, Excel должен разбить эти данные на отдельные диапазоны, которые он не может сделать с вставкой из коробки. Вы можете подумать, можно ли проводить проверки в VBA без необходимости создания временного листа. – Dave