【发布时间】:2017-07-20 08:37:49
【问题描述】:
我对 VBA 还很陌生,但正在学习。 我的目标是加快一些日常总结。
我在清除过滤器时遇到问题(以防某些被放在另一个字段中)当没有过滤器时我会收到错误。
我无法根据单元格值得到正确的格式,没有错误,它只是选择空白
不知道如何选择过滤范围,我想出了一个,但一定有更好的方法。
如果有人知道一些很好的总结/教程如何选择没有对象表的范围,请给我一个链接。
它是更大宏的一部分,因此声明更早,它们在不同的部分工作,所以它们不是问题。
Sub aktualizacja_SKU()
Set wbThis = ActiveWorkbook
var1 = DATA.Value
With SKU_table
lr1 = .Range.Rows.Count
End With
strPath = "C:\Users\###\Desktop\###\"
strFile = "###.xlsm"
Set wbTarget = Workbooks.Open(strPath & strFile)
wbTarget.Activate
第一个问题:我试图用 ' 找到下面缺少过滤器行的错误解决方案,但它不起作用
'Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=11,
' Criteria1:="SPM"
'Sheets("Zamówienie").ShowAllData
第二个:它忽略日期上带有过滤器的行并选择一个空白
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=4
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=4,
Criteria1:=Format(var1, "yyyy-mm-dd") ', Operator:=xlOr
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=11
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=11,
Criteria1:="SPM" ', Operator:=xlOr
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=14
Sheets("Zamówienie").Range("$A$3:$V$100000").AutoFilter Field:=14,
Criteria1:="Lack of delivery"
Sheets("Zamówienie").Select
Range("C3:F3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
wbThis.Activate
第三。我将所有范围与标题一起复制然后将其删除,通常我会将数据更改为表格,但我无法更改数据源。
SKU_table.DataBodyRange(lr1, 1).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
SKU_table.ListRows(lr1).Delete
End Sub
您能否解释一下新行的作用或发送教程链接。 我宁愿理解,也不要只是复制粘贴。
【问题讨论】:
-
也许更好地解决您的问题是使用高级过滤器 - 您可以在其他地方复制此方法中的结果..
标签: vba excel range filtering date-range