【发布时间】:2015-10-27 21:21:30
【问题描述】:
我正在尝试运行一个宏,它应该获取最后一个活动行,将所有数据复制到新工作表,应用过滤器(K 行 >15,9 上的数字),将结果复制并粘贴到新的表。
但是,应用过滤器后,新工作表中不会粘贴任何内容。 任何想法为什么?
谢谢!
Sub Macro1()
'Select and paste all data, couldn't work on a "last active line" in here..
Cells.Select
Selection.Copy
Sheets("Plan2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:O1").Select
Application.CutCopyMode = False
'Aplying the filter
Selection.AutoFilter
ActiveSheet.Range("$A$1:$O$1056").AutoFilter Field:=11, Criteria1:=">15,9" _
, Operator:=xlAnd
'Here I'm trying to past the filtered data in the new sheet, but the result appears in blank
Cells.Select
Selection.Copy
Sheets("Plan3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Here i came back and turned the autofilter off, but it was useless
Sheets("Plan2").Select
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$O$1056").AutoFilter Field:=11
End Sub
【问题讨论】:
-
你认为这个标准在做什么:">15,9"?
-
你能不能只过滤第一张纸然后将过滤后的数据粘贴到下一张纸上?
-
问题可能是 VBA 中的
DecimalSeparator属性,您可能需要使用 US-EN 样式表示法:>15.9而不是>15,9。否则,最有可能的错误来源是不合格的Cells/Range对象,如下斯科特的回答。 -
大卫,这不仅仅是小数分隔符,我已经按照你的建议进行了尝试,但问题仍然存在。 ">15,9" 它应该过滤高于 15,9 的数字
-
Davesexcel,这就是问题所在:在宏中,当我过滤第一张工作表并将过滤后的数据粘贴到下一张工作表时,没有粘贴任何内容。手动它可以工作,但在宏中没有。