【发布时间】:2017-02-20 17:50:47
【问题描述】:
我已经在 excel 中整理了一个日历(见图),我正在尝试解决的功能之一是如何提取当天分配的任务并将这些任务复制到另一个工作表中。
我已将代码更新为以下
Sub OtherTask()
Dim DRng As Range
ActiveSheet.Range("g2:ah2").Find(Date).Select
ActiveCell.Resize(5).Offset(4).Select
Selection.AutoFilter Field:=1, Criteria1:="1", Operator:=xlFilterValues
'Selection.Copy
'ActiveSheet.Range("r12").PasteSpecial xlPasteValues
'Application.CutCopyMode = False
If ActiveSheet.AutoFilterMode = "True" Then
ActiveSheet.AutoFilterMode = "False"
End If
结束子
我已将 DRng 声明为 Range,但我不知道如何设置它以便 DRng 代表以下内容
ActiveSheet.Range("g2:ah2").Find(Date).Select
ActiveCell.Resize(5).Offset(4).Select
Selection.AutoFilter Field:=1, Criteria1:="1", Operator:=xlFilterValues
最终目标是让 excel 表识别当天的日期 - 通过以下方式完成
ActiveSheet.Range("g2:ah2").Find(Date).Select
确定日期后,向下查看该列并过滤单元格中包含#“1”的所有单元格 - 完成以下操作
ActiveCell.Resize(5).Offset(4).Select
Selection.AutoFilter Field:=1, Criteria1:="1", Operator:=xlFilterValues
一旦发生这种情况,我理想情况下希望 excel 返回 B 列(我一直在尝试这将偏移和一个负数 - 没有运气),然后复制 B 列中与所在行对应的内容存在“1”。查看图像的示例将是 2 月 19 日,我希望 excel 能够找到活动 1A(位于单元格 B7 中)并复制此单元格。
我的想法是,一旦我能够找到日期和其中带有“1”的单元格,我就可以将其设置为范围 DRng,然后使用 DRng 偏移到 B 列并获取适当的细胞。也许(很可能)我正在以错误的方式思考这个问题,因为我在这里拥有的目标无法实现。我一直在玩弄 With/End With 之间的 if 语句,但没有运气。非常感谢任何想法/方向。谢谢
【问题讨论】:
-
您不能为单元格赋值并同时设置对象。使用AutoFilter method 过滤1(可能还有另一列上的日期),然后使用SpecialCells 和xlCellTypeVisible 来复制所有匹配的结果。有关示例,请参见 this。
-
以下我仍然收到错误 1004 With ActiveSheet .AutoFilterMode = False .Range("g6:AH36").AutoFilter Criteria1:=1 End With Dim NewDRng As Range Set NewDRng = ActiveSheet.AutoFilter .Range.SpecialCells(xlCellTypeVisible) Td = Date If DRng = Td Then NewDRng.Copy Destination:=NewSh.Range("a1") End If Application.Sheets.Add End Sub