作者ck3300511 (迪恩)
看板Office
標題[算表] 找出發生最早日期和算出天數
時間Mon Sep 24 12:24:04 2018
軟體:Excel
https://imgur.com/a/zG5RTRE
如上圖
E~J欄會填上日期 (有些欄位沒發生的話會空白)
我想在K欄找出E~J欄發生最早的日期
如果以上圖來講,希望K2會顯示2018/01/05
然後L2會算出K2日期至今的天數,如果L2的數字大於等於60,就會變紅字
然後使用者打開Excel的時候會跳出警示視窗,
內容是【A2的最早日期至今已經大於等於60】,該怎麼做呢?
(另外想在E~J欄加入防呆機制-不管怎麼輸入日期都會變成oooo/oo/oo的西元年格式
例如:107/01/05、1070105、0105、1/15)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.167.233
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1537763046.A.A4B.html
1F:→ soyoso: 如符合日期序列值的話,函數min來回傳最早日期 09/24 12:33
3F:→ soyoso: 至今天數函數today()減k2的值,格式化條件大於等於60,字 09/24 12:34
4F:→ soyoso: 型色彩改為紅色;打開該檔案時跳出警示視窗方面,想到的是 09/24 12:35
5F:→ soyoso: 巨集workbook_open觸發,msgbox來顯示提醒的字串 09/24 12:35
6F:→ soyoso: 防呆提醒要以符合日期格式鍵入的話,可於資料驗證,儲存格 09/24 12:39
7F:→ soyoso: 內允許,日期。e:j欄儲存格格式改為yyyy/mm/dd,這樣1/15 09/24 12:40
8F:→ soyoso: 的鍵入方式也可符合日期序列值的西元年格式 09/24 12:40
9F:→ ck3300511: 如果L欄有任何一個儲存格大於等於60 09/24 13:20
10F:→ ck3300511: 是用For Each cell In rng嗎? 09/24 13:21
11F:→ soyoso: 這要看大於等於60是要顯示紅字(以格式化條件),或跳出警示 09/24 13:31
12F:→ soyoso: 視窗,如是要該視窗msgbox的話可用回文for each..next 09/24 13:32
13F:→ soyoso: 來累計合併最後要帶入視窗內的字串 09/24 13:32
15F:→ ck3300511: 嗎?如果是L欄其中一個儲存格>=60就會跳Msgbox的話 09/24 21:41
16F:→ soyoso: 1.該活頁簿只有一個工作表嗎?二個工作表以上的話是否作用 09/24 22:02
17F:→ soyoso: 的工作表就是判斷L1:L9999的工作表呢?如果不一定的話,請 09/24 22:03
18F:→ soyoso: 以sheets.range或workshees.range的方式指定 09/24 22:03
19F:→ soyoso: 2.要看迴圈於L1:L9999執行上的效率,如調整為動態的話,可 09/24 22:05
20F:→ soyoso: 以range.end、range.find取得最後有值的儲存格,如要回傳 09/24 22:06
21F:→ soyoso: 列號的話以row;如為連續資料的話也可以工作表函數counta 09/24 22:07
22F:→ soyoso: 或count 09/24 22:07
23F:→ soyoso: 如L欄其中一個儲存格大於等於>=60就跳msgbox方式就要看還 09/24 22:08
24F:→ soyoso: 要於訊息內加上什麼資訊。 09/24 22:10
25F:→ soyoso: 1.只有要一筆符合,跳出訊息且離開迴圈的話exit for 09/24 22:11
26F:→ soyoso: 2.回傳的訊息要有那個儲存格符合條件的話range.address 09/24 22:11
27F:→ soyoso: 字串連接上以&;若是要全部符合儲存格都連接的話,設個 09/24 22:13
28F:→ soyoso: 變數來連結&,再將msgbox的部分移到next下方 09/24 22:15
29F:→ ck3300511: 只要有一筆符合就跳出訊息 exit for要怎麼用呀 09/24 22:16
30F:→ soyoso: 如只要有一筆符合跳出訊息且離開迴圈的話 exit for就寫在 09/24 22:19
31F:→ soyoso: msgbox 下方 09/24 22:19
32F:→ soyoso: 如是要上述的話,也可以工作表函數countif,當計數大於0時 09/24 22:24
33F:→ soyoso: 就msgbox訊息,可不用迴圈 09/24 22:25
34F:→ ck3300511: 謝謝S大 09/24 22:36
35F:→ ck3300511: 請問next和exit for要加在哪? 09/25 21:02
36F:→ ck3300511: 今天試跑出現錯誤訊息說沒有next 09/25 21:03
37F:→ ck3300511: next加的位置好像會牽連exit for 09/25 21:03
39F:→ soyoso: 方;exit for加在end if上方 09/25 22:36
40F:→ ck3300511: 好!明天試試看~謝謝S大 09/25 22:52