返回列表 上一主題 發帖

[發問] 搜尋、比對,再複製過來的功能

本帖最後由 n7822123 於 2019-6-20 11:53 編輯

回復 12# iceandy6150


第二個問題  現在是6月
我另存新檔想要用年+月+檔名
比如  "10806檔案"
108可能還好,就 Mid(year(Date),1,3) 就得到了
但是月就麻煩了
如果1~9月只有一個數字
10~12月是兩個數字
該怎麼讓檔名自動補0 呢?


用格式mm即可.............自己試試看:
MsgBox Application.Text(Now, "m/d")
MsgBox Application.Text(Now, "mm/d"))



第三個問題
然後其實我想要做到的是可以自動存成下個月的
比如現在是六月,但是存起來卻是 "10807檔案" 這樣

不多說.....自己試看看:
MsgBox Application.Text(DateSerial(Year(Now), Month(Now) + 1, Day(Now)), "emm")

你應該要學的是,有關時間的函數與格式
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 13# iceandy6150


   
如果滿半年就怎樣怎樣---> 先算出年資換算成月是幾月  滿半年就是年資>=6
如果滿一年 --> 年資>=12
用這些條件再來區分各級距的人該下什麼指令

參考看看

入職日期 = DateValue("6 / 4 / 2014")    '自己設定入職日期
年資 = Application.Text(Now - 入職日期, "yy/mm")
MsgBox "張三年資共" & Split(年資, "/")(0) * 12 + Split(年資, "/")(1) & "個月"
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2019-6-21 01:19 編輯

回復 20# 准提部林


感謝準大提供好多方法,受益匪淺 ^.^,算的我眼花撩亂了XD
Edate函數感覺可以完全被DateAdd所取代,只能用月當間隔,彈性有限

MsgBox Format(Application.EDate(Date, 1), "emm") & "檔案"
MsgBox Format(DateAdd("m", 1, Date), "emm") & "檔案"


收穫最多的是Evaluate函數,之前沒用過這個函數!
覺得非常好用,自己試玩了一下 ^.^
感覺上只要是工作表函數都可以計算
雖然我已經習慣用 Application.工作表函數 或者 WorksheetFunction.工作表函數
但是這個函數的價值在於,可以直接把字串直接做運算,不需要額外解字串來處理,省下大量程式!

MsgBox Evaluate("3+2") '=5
MsgBox Evaluate("max(" & "20,30,40,99)")  '最大值99
MsgBox Evaluate("SIN(30*PI()/180)")  'Sin 30度=0.5
MsgBox Evaluate("DEC2HEX(253)")  '253的16進位表示=FD


但是VBA函數就不能了~~~~~可惜
MsgBox Evaluate("Hex(253)")  '錯誤

今天準大感覺心情很好,卯起來提供N種方法XD
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 23# n7822123


我也再提供方法~~這兩個其實是一樣的,用的函數不同

MsgBox Format(Year(Date) & "/" & Month(Date) + 1, "emm") & "檔案"
MsgBox Format(Year(Date) & "/" & DatePart("m", Date) + 1, "emm") & "檔案"
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題