Vba Userform,如何添加日期筛选器范围
我希望对日期过滤器使用Userform选项,用户将输入“开始时间”和“结束时间”,所有相关数据将根据此过滤器显示 我使用的本地宏使用两个不同的单元格进行数据输入,但文件视图不好,这就是我希望使用Useform选项的原因 我的代码:Vba Userform,如何添加日期筛选器范围,vba,excel,userform,Vba,Excel,Userform,我希望对日期过滤器使用Userform选项,用户将输入“开始时间”和“结束时间”,所有相关数据将根据此过滤器显示 我使用的本地宏使用两个不同的单元格进行数据输入,但文件视图不好,这就是我希望使用Useform选项的原因 我的代码: Public Sub MyFilter() Dim lngStart As Date, lngEnd As Date lngStart = Range("b2").Value 'assume this is the start date lng
Public Sub MyFilter()
Dim lngStart As Date, lngEnd As Date
lngStart = Range("b2").Value 'assume this is the start date
lngEnd = Range("b3").Value 'assume this is the end date
Range("q:q").AutoFilter Field:=1, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd
Range("A1:s3000").Select
Range("A:A").Activate
Selection.Copy
Sheets.Add After:=ActiveSheet
With ActiveSheet
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Columns("A:A").EntireColumn.AutoFit
.Cells.Select
.Cells.EntireColumn.AutoFit
.Rows("1:1").Select
.Application.CutCopyMode = False
With Selection
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
.AutoFilter
Columns("Q:Q").Select
Selection.NumberFormat = "[$-409]m/d/yy h:mm AM/PM;@"
End With
.Columns("A:A").EntireColumn.AutoFit
.Range("A2").Select
End With
End Sub
公共子MyFilter()
Dim lngStart As Date,LNGED As Date
lngStart=范围(“b2”)。值“假设这是开始日期”
lngEnd=范围(“b3”)。值“假设这是结束日期
范围(“q:q”)。自动筛选字段:=1_
标准1:=“>=”&lngStart_
运算符:=xlAnd_
准则2:=“要将粘贴缓冲区复制到新文件,请添加新文件(而不是工作表):
要仅复制筛选的行,请使用以下命令:
Range("A1:S3000").SpecialCells(xlCellTypeVisible).Copy
fNew.Sheets(1).Range("A1").PasteSpecial
因此,您的问题是“如何将数据从用户表单复制到工作表?”或者您还有其他问题吗?您的代码完成了哪一部分,您坚持了哪一部分,以及您尝试了什么?(另请参见“以及”。)我写的代码正在处理常规宏。我想用“开始时间”、“结束时间”和“运行时间”两个不同的底部将其编辑为Userform选项(每个按钮应该能够从用户处获取日期值,如代码中的“b2”和“b3”单元格。谢谢,但我不知道如何将其编辑为Userform视图。
.Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1:S3000").SpecialCells(xlCellTypeVisible).Copy
fNew.Sheets(1).Range("A1").PasteSpecial