-1
我正在嘗試寫一個VBA代碼,它可以自動執行我每天都在做的一個步驟,但我不能。在單元格中查找值並在該單元格的列中粘貼範圍的宏。 EXCEL 2007
在列B
我有一些值是不同的每天,並且列B
的標題是日期=Today()
。
下一個列標題是一年的日子..所以我需要的是複製列B
的值,查找與當天匹配的列,然後將值粘貼到該列中。
我正在嘗試寫一個VBA代碼,它可以自動執行我每天都在做的一個步驟,但我不能。在單元格中查找值並在該單元格的列中粘貼範圍的宏。 EXCEL 2007
在列B
我有一些值是不同的每天,並且列B
的標題是日期=Today()
。
下一個列標題是一年的日子..所以我需要的是複製列B
的值,查找與當天匹配的列,然後將值粘貼到該列中。
這裏有一個Sub
來完成這個任務
Sub Demo()
Dim ws As Worksheet
Dim rSrc As Range
Dim rDst As Range
Dim cl As Range
Dim dat As Variant
Set ws = ActiveSheet
' Get the Source range
Set rSrc = ws.Range([B2], ws.Columns(2).Cells(ws.Rows.Count, 1).End(xlUp))
dat = rSrc
' Find the Destination column and copy data
Set rDst = ws.Range([C1], ws.Rows(1).Cells(1, ws.Columns.Count).End(xlToLeft))
Set cl = rDst.Find(What:=[B1], _
After:=rDst.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If cl Is Nothing Then
MsgBox "Date Column for " & CStr([B2].Value) & " Not Found"
Else
Set rDst = cl.Offset(1, 0).Resize(UBound(dat, 1), 1)
rDst = dat
End If
End Sub
此代碼假定當天報頭被格式化DateSerial
號碼(相同的=Today()
結果)
如果不是,則Find(What:=[B2]
可能需要的情況下更改。
工作原理:
B2
在使用範圍的時間從C1
結束的排
爲了確保我理解。單元格B1包含今天的日期。今天B1包含2012年1月3日,但三天前它包含2011年12月31日。單元格C1,D1,E1等也包含日期。你需要一個發現單元格X1的例程,使得B1和X1包含相同的日期。然後,您希望將Bn複製到X的每個n值。在此例程運行之前,列X是否爲空?單元格B1,C1等包含Excel日期還是字符串?如果他們是Excel日期,他們是否包含時間?你的問題是你不知道如何編寫這樣的例程或你的例程不工作? – 2012-01-03 00:21:12
[你試過了什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-01-03 08:49:01