【发布时间】:2016-04-14 21:52:46
【问题描述】:
我昨晚一直在寻找我的问题的答案,但我没有找到任何具体的问题。
我有一张包含大量数据的大表格。在 A 列中,我有日期和时间。我想要一个执行很少操作的 VBA 代码。
1) 在给出工作日名称的 A 列旁边插入 B 列。例如,如果 A 列中的日期是 2016 年 1 月 10 日 8:30,则 B 列将显示“星期日”
2) 然后 VBA 代码根据 B 列过滤此工作表。例如,给定特定日期(例如星期五)的用户输入,自动过滤器将过滤 4 天前(星期五、星期六、星期日、星期一) .
3) 然后将自动过滤器的结果复制到新的空白表中。
4) 在新工作表中,我希望 vba 删除同一用户定义的日期(例如星期五)的任何行数据,其时间小于 A 列中用户定义的时间(例如上午 8:00)。最后转移单元格向上删除任何空白行。
希望我不会因为这个问题让你不知所措,但我希望我能从这里的一位聪明人那里得到反馈
这里是第 1 部分尝试的代码
Sub sbInsertingColumns()
Worksheets("Imported").Activate
'Inserting a Column at Column B
If Range("B1").Value = "Weekday" Then
Range("B1").Value = "Weekday1"
Else
Range("B1").EntireColumn.Insert
Range("B1").Value = "Weekday"
Worksheets("Imported").Range("B2").Formula = "=choose(weekday(A2),""Sunday"",""Monday"",""Tuesday"",""Wednesday"",""Thursday"",""Friday"",""Saturday"")"
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Range("B2").Copy Range("B2:B" & LastRow)
End If
End Sub
【问题讨论】:
-
您可以先使用下面链接中提到的“Werkday”功能。 techonthenet.com/excel/formulas/weekday.php
-
我试过 Range("B2").Formula= "=choose(weekday(a1),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday ","Saturday")" 但它不起作用
标签: excel copy-paste autofilter weekday vba