Excel 使用输入值自动筛选列,然后将筛选的数据复制到其他工作簿

Excel 使用输入值自动筛选列,然后将筛选的数据复制到其他工作簿,excel,vba,Excel,Vba,我有下面的代码,它非常适合复制数据。我修改了它,在处理之前过滤每个工作簿“名称”选项卡上的数据,但它没有过滤,它仍然复制整个数据集 因此,我想要的是将列L(字段=12)过滤为大于输入条件的值;然后从工作簿中复制这些值 我想维护这段代码,但调整了粗体区域来做到这一点。请告诉我我做错了什么;谢谢 代码是 Dim sNames As Variant sNames = Array("Jewel.xlsm", "Tamar.xlsm", "Britty.x

我有下面的代码,它非常适合复制数据。我修改了它,在处理之前过滤每个工作簿“名称”选项卡上的数据,但它没有过滤,它仍然复制整个数据集

因此,我想要的是将列L(字段=12)过滤为大于输入条件的值;然后从工作簿中复制这些值

我想维护这段代码,但调整了粗体区域来做到这一点。请告诉我我做错了什么;谢谢

代码是

Dim sNames As Variant
sNames = Array("Jewel.xlsm", "Tamar.xlsm", "Britty.xlsm")

Dim wb As Workbook
Set wb = ActiveWorkbook

With wb.Worksheets("Data")
 Dim dFirst As Range
Set dFirst = .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
End With

Dim dCell As Range
Set dCell = dFirst

Dim sName As Variant
Dim sLastRow As Long
Dim sRng As Range
Dim dRows As Long

For Each sName In sNames
With Workbooks(sName).Worksheets("Names")
sLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set sRng = .Range("A2:N" & sLastRow)
End With

  **With sRng
  Dim i As String
  i = InputBox("Last Actual 'RED' Date")
  
  Selection.AutoFilter
 .Range("A2:N" & sLastRow).AutoFilter field:=12, Criteria1:=">" & i
  End With**

    With sRng
     dCell.Resize(.Rows.Count, .Columns.Count).Value = sRng.Value
     dRows = dRows + .Rows.Count
     Set dCell = dCell.Offset(.Rows.Count)
End With
Next sName
With dFirst.Resize(dRows, sRng.Columns.Count)
.Interior.Color = xlNone
With .Font
  .Name = "Calibri"
   .Size = 10
    End With
End With

End Sub

问题是您复制的是整个范围,而不是您需要执行的可见范围
sRng.SpecialCells(xlCellTypeVisible)。复制dCell
我插入了它,但它仍然复制了整个工作表。我做错了什么。您是否删除了另一部分
dCell.Resize(.Rows.Count,.Columns.Count).Value=sRng.Value
?我这样做了,只复制了第一个工作簿的数据。此外,当我再次运行脚本时,它会进行筛选,但没有复制任何内容。