[算表] 找出發生最早日期和算出天數

看板Office作者 (迪恩)時間7年前 (2018/09/24 12:24), 編輯推噓0(0040)
留言40則, 2人參與, 7年前最新討論串1/2 (看更多)
軟體: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://www.ptt.cc/bbs/Office/M.1537763046.A.A4B.html

09/24 12:33, 7年前 , 1F
如符合日期序列值的話,函數min來回傳最早日期
09/24 12:33, 1F

09/24 12:33, 7年前 , 2F

09/24 12:34, 7年前 , 3F
至今天數函數today()減k2的值,格式化條件大於等於60,字
09/24 12:34, 3F

09/24 12:35, 7年前 , 4F
型色彩改為紅色;打開該檔案時跳出警示視窗方面,想到的是
09/24 12:35, 4F

09/24 12:35, 7年前 , 5F
巨集workbook_open觸發,msgbox來顯示提醒的字串
09/24 12:35, 5F

09/24 12:39, 7年前 , 6F
防呆提醒要以符合日期格式鍵入的話,可於資料驗證,儲存格
09/24 12:39, 6F

09/24 12:40, 7年前 , 7F
內允許,日期。e:j欄儲存格格式改為yyyy/mm/dd,這樣1/15
09/24 12:40, 7F

09/24 12:40, 7年前 , 8F
的鍵入方式也可符合日期序列值的西元年格式
09/24 12:40, 8F

09/24 13:20, 7年前 , 9F
如果L欄有任何一個儲存格大於等於60
09/24 13:20, 9F

09/24 13:21, 7年前 , 10F
是用For Each cell In rng嗎?
09/24 13:21, 10F

09/24 13:31, 7年前 , 11F
這要看大於等於60是要顯示紅字(以格式化條件),或跳出警示
09/24 13:31, 11F

09/24 13:32, 7年前 , 12F
視窗,如是要該視窗msgbox的話可用回文for each..next
09/24 13:32, 12F

09/24 13:32, 7年前 , 13F
來累計合併最後要帶入視窗內的字串
09/24 13:32, 13F

09/24 21:40, 7年前 , 14F
https://imgur.com/a/MLl8wO0 S大請問這樣有地方需調整
09/24 21:40, 14F

09/24 21:41, 7年前 , 15F
嗎?如果是L欄其中一個儲存格>=60就會跳Msgbox的話
09/24 21:41, 15F

09/24 22:02, 7年前 , 16F
1.該活頁簿只有一個工作表嗎?二個工作表以上的話是否作用
09/24 22:02, 16F

09/24 22:03, 7年前 , 17F
的工作表就是判斷L1:L9999的工作表呢?如果不一定的話,請
09/24 22:03, 17F

09/24 22:03, 7年前 , 18F
以sheets.range或workshees.range的方式指定
09/24 22:03, 18F

09/24 22:05, 7年前 , 19F
2.要看迴圈於L1:L9999執行上的效率,如調整為動態的話,可
09/24 22:05, 19F

09/24 22:06, 7年前 , 20F
以range.end、range.find取得最後有值的儲存格,如要回傳
09/24 22:06, 20F

09/24 22:07, 7年前 , 21F
列號的話以row;如為連續資料的話也可以工作表函數counta
09/24 22:07, 21F

09/24 22:07, 7年前 , 22F
或count
09/24 22:07, 22F

09/24 22:08, 7年前 , 23F
如L欄其中一個儲存格大於等於>=60就跳msgbox方式就要看還
09/24 22:08, 23F

09/24 22:10, 7年前 , 24F
要於訊息內加上什麼資訊。
09/24 22:10, 24F

09/24 22:11, 7年前 , 25F
1.只有要一筆符合,跳出訊息且離開迴圈的話exit for
09/24 22:11, 25F

09/24 22:11, 7年前 , 26F
2.回傳的訊息要有那個儲存格符合條件的話range.address
09/24 22:11, 26F

09/24 22:13, 7年前 , 27F
字串連接上以&;若是要全部符合儲存格都連接的話,設個
09/24 22:13, 27F

09/24 22:15, 7年前 , 28F
變數來連結&,再將msgbox的部分移到next下方
09/24 22:15, 28F

09/24 22:16, 7年前 , 29F
只要有一筆符合就跳出訊息 exit for要怎麼用呀
09/24 22:16, 29F

09/24 22:19, 7年前 , 30F
如只要有一筆符合跳出訊息且離開迴圈的話 exit for就寫在
09/24 22:19, 30F

09/24 22:19, 7年前 , 31F
msgbox 下方
09/24 22:19, 31F

09/24 22:24, 7年前 , 32F
如是要上述的話,也可以工作表函數countif,當計數大於0時
09/24 22:24, 32F

09/24 22:25, 7年前 , 33F
就msgbox訊息,可不用迴圈
09/24 22:25, 33F

09/24 22:36, 7年前 , 34F
謝謝S大
09/24 22:36, 34F

09/25 21:02, 7年前 , 35F
請問next和exit for要加在哪?
09/25 21:02, 35F

09/25 21:03, 7年前 , 36F
今天試跑出現錯誤訊息說沒有next
09/25 21:03, 36F

09/25 21:03, 7年前 , 37F
next加的位置好像會牽連exit for
09/25 21:03, 37F

09/25 22:36, 7年前 , 38F
如是指https://imgur.com/a/MLl8wO0的話next加在end if下
09/25 22:36, 38F

09/25 22:36, 7年前 , 39F
方;exit for加在end if上方
09/25 22:36, 39F

09/25 22:52, 7年前 , 40F
好!明天試試看~謝謝S大
09/25 22:52, 40F
文章代碼(AID): #1Rg6RcfB (Office)
文章代碼(AID): #1Rg6RcfB (Office)