2017-02-20 63 views
0

我在excel中放置了一個日曆(請參閱圖片),我試圖解決的一個功能是如何提取當天分配的任務並將這些任務複製到另一個工作表中。複製範圍找不到對象

enter image description here

我的代碼更新到以下

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的範圍,但我想不出如何設置它,這樣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語句,但沒有運氣。任何想法/方向非常感謝。謝謝

+0

您無法爲單元格指定值並同時設置對象。使用[自動篩選方法](https://msdn.microsoft.com/en-us/library/office/aa221844.aspx)篩選** 1 **(可能是另一列的日期),然後選擇[SpecialCells]( https://msdn.microsoft.com/en-us/library/office/ff196157.aspx)與[xlCellTypeVisible](https://msdn.microsoft.com/en-us/library/office/ff836534.aspx)複製所有匹配的結果。請參閱[this](http://stackoverflow.com/questions/36671453/create-a-new-sheet-for-each-unique-agent-and-move-all-data-to-each-sheet/36672632?s = 1 | 0.5378#36672632)爲例。 – Jeeped

+0

用下面我仍然得到錯誤1004 隨着ActiveSheet .AutoFilterMode =假 .Range( 「G6:AH36」)自動篩選標準1:= 1 尾隨着 昏暗NewDRng作爲範圍 集NewDRng = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible) TD =日期 如果DRNG值= Td然後 NewDRng.Copy目的地:= NewSh.Range( 「A1」) 結束如果 Application.Sheets。Add End Sub – officemanager2

回答

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  
+0

是的,那正是我想要完成的。我已經把它放到工作表中,儘管它正在添加新工作表,但並沒有抓住相應的任務。我會盡力而爲,看看我能否得到它的工作。我對這個問題的含糊性表示歉意。除了理解/實施VBA的挑戰之外,我發現簡單地提出明確的問題有點挑戰,但我會繼續嘗試。我很欣賞這種協助,因爲它讓我更接近目標。 – officemanager2