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