想請問各位大大~,excel vba有沒有辦法達成我只要執行巨集,它就會自動帶出該日期儲存格資料(如下圖)。
找很久都沒有類似的答案QQ不知道是不是因為剛學習...無法打出關鍵字...所以都一直無法找到想要的辦法,不知是否有高手可協助解答,謝謝
想請問Excel vba可否用日期抓取資料
以上這張圖,是希望可以使用今天日期然後將各人員的出勤以及加班人數帶過來(只帶A1欄位的日期,其餘不帶)
 
想請問Excel vba可否用日期抓取資料
 
請各位大大幫忙解答QQ謝謝...
文章關鍵字
看你的圖片有5個人,也有5張工作表,是不是1個人對應一張工作表,若是倒可以不用VBA,寫公式即可處理。
錦色如月,子耀光芒。
錦子 wrote:
看你的圖片有5個人,...(恕刪)


是的~公式可以達成每日變更"總表"那邊嘛??
是的,錦大說的沒錯喔,確實是可以用公式來達成;當然,如果您每張工作表都能用姓名來命名,那公式寫法就更簡單明白了。

使用VBA,那也更是「簡單」,輕鬆完成您的需求絕不是問題。

不過,個人好像沒看到,總表以外,其他表的內容?如果您能提供的話,應該能更快得到版上各位先進解答~~你考慮看看?
Der,misser1
好吧,我「承認」,看了您提供的VBA代碼圖,有點搞不清楚,您實際要的操作是甚麼?(把資料從各分表帶到總表?還是把總表資料帶到其他表?)

或者您願意提供檔案,並能更清楚敘述(最好是舉一次實際例子,把您手動作法,從開始到完成逐步說明一下)?這樣比較容易達成您的需求。(當然或許其他大大早已秒懂,且願意提供解答也不一定。那我這篇回文就請自動忽略囉)
Der,misser1
剛再花點時間看了下圖片........嗯,我覺得我似乎懂了,.........是把各子表裡面,符合日期的資料copy到總表來,是吧?。

如果您願意,資料也無機密性,是否能提供下載,或許可以找時間幫您試試修改完成?

另外,您的程序內容有句:

.......
Range("B2:B4").Select
.......

看來您手動的時候,也是複製上下3個資料......但您的總表,不是只有2列而已?(出勤、加班人數).........還是我又「誤會」了?呵
Der,misser1
步驟1:點取A1儲存格輸入公式:
=TODAY()
這邊為何輸入TODAY()而不是NOW()呢?那是因為TODAY()不含時與分,而NOW()含時與分,我們必須在公式前面加上INT函數(=INT(NOW()))才會抓取到對應的日期資料。
步驟2:點取總表工作表B2儲存格輸入公式:
=COUNTIFS(INDIRECT(B$1&"!$C3:$C100"),"Y",INDIRECT(B$1&"!$A3:$A100"),$A$1)
再將公式複製到C2:F2儲存格。

步驟3:點取總表工作表B3儲存格輸入公式:
=COUNTIFS(INDIRECT(B$1&"!$D3:$D100"),"Y",INDIRECT(B$1&"!$A3:$A100"),$A$1)
再將公式複製到C3:F3儲存格。

錦色如月,子耀光芒。
錦子 wrote:
步驟1:點取A1儲存(恕刪)


嗯嗯......所以若用姓名來當工作表名稱,就很清楚。

不過,為何「周潤發」的工作表,裡面會放一大堆的員工出勤加班資料(編號)呢?(不應該只有「周潤發」的資料嗎?).....當我還在「糾結」沒有檔案可以下載來研究看看時,錦大可是連示範資料都提供好了.......呵。

Der,misser1
如果版大需要在總表的A1顯示到今天日期的時:分(或許列印報表時需顯示?).....仍要用 Now() 顯示的話也可以,上面錦大已經有給出作法答案了(連說明解釋都寫了),您可以舉一反三試試。

1.總表A1仍舊使用 =Now() '~如果這時日期後的時:分「不見」了,請檢查A1格目前的「儲存格格式」設定是否有到hh:mm。

錦子 wrote:
=COUNTIFS(INDIRECT(B$1&"!$C3:$C100"),"Y",INDIRECT(B$1&"!$A3:$A100"),$A$1)


2.在錦大的公式參數,直接帶上INT:
=COUNTIFS(INDIRECT(B$1&"!$C3:$C100"),"Y",INDIRECT(B$1&"!$A3:$A100"),INT($A$1))

其他格也都一樣比照辦理囉。(沒幫上甚麼忙,呵。)
Der,misser1
錦子 wrote:
=COUNTIFS(INDIRECT(B$1&"!$C3:$C100"),"Y",INDIRECT(B$1&"!$A3:$A100"),$A$1)
再將公式複製到C2:F2儲存格。

步驟3:點取總表工作表B3儲存格輸入公式:
=COUNTIFS(INDIRECT(B$1&"!$D3:$D100"),"Y",INDIRECT(B$1&"!$A3:$A100"),$A$1)
再將公式複製到C3:F3儲存格。


錦子的解決方案真是條理分明,說明部份也是清楚直接,看了讓人眼睛一亮

子工作表的範圍要改一下,從A2, C2, D2 開始,不然第一筆資料統計不到

=COUNTIFS(INDIRECT(B$1&"!$C2:$C100"),"Y",INDIRECT(B$1&"!$A2:$A100"),$A$1)
再將公式複製到C2:F2儲存格。

步驟3:點取總表工作表B3儲存格輸入公式:
=COUNTIFS(INDIRECT(B$1&"!$D2:$D100"),"Y",INDIRECT(B$1&"!$A2:$A100"),$A$1)
再將公式複製到C3:F3儲存格。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!