vba - 用户表单,如何添加日期过滤器范围
问题描述
我希望对日期过滤器使用 Userform 选项,用户将输入“开始时间”和“结束时间”,所有相关数据将根据此过滤器显示。
我使用了本地宏,它使用两个不同的单元格进行数据输入,但文件视图很糟糕,这就是我想使用 Useform 选项的原因。
我的代码:
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
该代码还将数据复制到新工作表(知道如何将其复制到新文件吗?)并更改了一些单元格格式。
谢谢!!
解决方案
要将粘贴缓冲区复制到新文件,请添加一个新文件(而不是工作表):
Set fNew = = Workbooks.Add(xlWBATWorksheet)
...
fNew.SaveAs Filename:=<file specification>
Paste:=xlPasteValues
从字面上复制没有任何格式、注释、边框等的值。为了保持源格式,只需使用ActiveSheet.Paste Destination:=Range("A1")
. 如果 - 由于任何原因 - 它不起作用,你可以试试这个:
.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
推荐阅读
- r - 如何从日期时间中提取小时(UTC 时间)
- python - 在 groupby 中查找 pandas 数据框索引的交集
- azure-ad-b2c - Azure Active Directory B2C 身份:身份验证和校对
- airflow - 触发规则 ONE_FAILED 满足时气流任务未触发
- ios - 打开“com.XX.XX”的请求失败请求仅在使用排毒时被服务委托拒绝
- html - Bootstrap 4 justify-space-around 和 justify-content-center 没有对齐
- postgresql - postgresql docker 复制
- node.js - 为什么强大的“多重”选择不适用于“多部分/表单数据”?
- c# - 连接时锁定 SQLite 数据库
- angular - 如何在 jest.config.js 中设置 tsconfig 路径。Angular 8. 开玩笑的预设角度