我已经在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
End Sub
我已将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日,我希望能够找到活动1A(在Cell B7中)并复制这个单元格。
我的想法是,一旦我能够找到一天和细胞与#34; 1"在其中我可以将其设置为Range DRng,然后使用DRng偏移到B列并获取适当的单元格。也许(很可能)我正在以错误的方式思考这个问题,因为我的目标无法实现目标。我一直在玩With / End With之间的if语句,但没有运气。非常感谢任何想法/方向。感谢
答案 0 :(得分:0)
嗯,我不确定我是否正确解释了你的问题,因为它有点含糊不清。你想沿着专栏走下去并抓住相应的活动并将它们放在新的表格中吗?如果是这样,试试这个
Sub TodaysDate()
Dim DRng As Range
Dim TASKng As Range
Dim newSh As Worksheet
'set the column to loop
col = Range("g2:ah2").Find(Date).column
'create new worksheet
Set newSH = thisworkbook.worksheets.add
tarRow = 1 'set which row to start writing data
For i = 6 to 36 'set which rows to loop
If activesheet.cells(i,col).value = 1 then
newSH.cells(tarRow,1) = activesheet.cells(i,1)
tarRow = tarRow +1
End if
Next i