excel - 运行自动过滤 VBA 宏并弹出输入日期
问题描述
我对整个 VBA/Excel 宏的事情有点陌生,所以我正在尽我所能找到我需要的解决方案,到目前为止我做得很好 - 但最终走到了死胡同。
我有一个代码是自动筛选我的数据表,然后根据特定列排序(见下文)。
Sub FGReport()
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Range.AutoFilter Field:=2, Criteria1:= "1085"
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Range.AutoFilter Field:=4, Criteria1:= "<>$0"
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Range.AutoFilter Field:=6, Criteria1:= "<1/1/2018", Operator:=xlAnd
'ActiveWorkbook.Worksheets("Sorted Report FG").Range("Table25[[#Headers],[LastSoldDate]]").Select
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Sort. SortFields.Clear
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Sort. SortFields.Add2 Key:=Range("Table25[LastSoldDate]"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Sort. SortFields.Add2 Key:=Range("Table25[TotalInventoryValue]"), SortOn:= xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sorted Report FG").ListObjects("Table25").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
代码自动过滤日期的位置(第 4 行)。我希望它提示用户手动输入日期。我认为使用 UserForm 执行此操作是最合适的(下图)
我只是不知道如何在该行代码中提示用户窗体出现,并通过输入日期、单击 Enter 来使其发挥作用,然后继续运行原始的 FGReport() 宏。
如果需要更多信息,请告诉我!谢谢!
解决方案
最初我会推荐一个输入框并检查输入是否有效:
Dim myDate as String
myDate = InputBox("Please enter a date (dd/mm/yyyy)", "Date filter", Format(Now() - 7, "dd/mm/yyyy"))
If IsDate(myDate) Then
' Continue with logic
Else
MsgBox "Invalid date"
End If
请注意,IsDate 是一个非常不稳定的函数,但如果您认为合适,您可以继续使此代码更漂亮。
推荐阅读
- javascript - NodeJS async/await 和 forEach
- c# - 使用 LINQ 和相应的销售数字计算价格范围
- vue.js - 将文件从 node_modules 复制到 dist 目录
- postgresql - postgress 将数据从数据库导入另一个具有更多列的表
- python - 索引为月时如何对系列的索引进行排序
- excel - 将静态公式转换为选择代码 VBA 宏
- abcpdf - ABCpdf unicode 字符为?
- java - 我在系统中的(本地)位置有一个文件,而不是健身文件夹,需要显示超链接以从 FITNESSE wiki 下载该文件
- javascript - 我需要一个表单的答案以立即重定向到另一个表单
- asp.net-mvc-5 - 在 mvc 上的剑道网格中绑定数据源