VBA 學習筆記 日期

2022-02-18 06:54:43 字數 4197 閱讀 6928

返回當前的系統日期

返回格式為 yyyy/mm/dd

學習資料:

將有效的日期和時間表示式轉換為型別日期。

用法cdate(date)

丸子:就是把輸入轉換為固定日期格式: yyyy/mm/dd

支援「月日年」、「年月日」格式,其中月份可以為英文縮寫,但是 libre office 的編輯器不支援此種格式,會報錯,只能使用 micro office excel 程式自帶開發工具。

private sub constant_demo_click()

dim a as variant

dim b as variant

a = cdate("jan 01 2020")

msgbox ("the value of a : " & a)

b = cdate("31 dec 2050")

msgbox ("the value of b : " & b)

c = cdate("2020-02-27")

msgbox ("the value of c : " & c)

end sub

學習材料:

返回乙個指定的時間間隔被新增的日期。

用法dateadd(interval,number,date)

private sub date_demo_click()

' positive interal

date1 = 23 - jan - 2020

msgbox ("yyyy - 年份: " & dateadd("yyyy", 1, date1))

msgbox ("q - 季度: " & dateadd("q", 1, date1))

msgbox ("m - 一年中的月份: " & dateadd("m", 1, date1))

msgbox ("y - 一年中的年份: " & dateadd("y", 1, date1))

msgbox ("d - 一年中的一天: " & dateadd("d", 1, date1))

msgbox ("w - 工作日: " & dateadd("w", 1, date1))

msgbox ("ww - 星期: " & dateadd("ww", 1, date1))

msgbox ("h - 小時: " & dateadd("h", 1, "01-jan-2013 12:00:00"))

msgbox ("n - 分鐘: " & dateadd("n", 1, "01-jan-2013 12:00:00"))

msgbox ("s - 秒鐘: " & dateadd("s", 1, "01-jan-2013 12:00:00"))

' negative interval

msgbox ("yyyy - 年份: " & dateadd("yyyy", -1, date1))

msgbox ("q - 季度: " & dateadd("q", -1, date1))

msgbox ("m - 一年中的月份: " & dateadd("m", -1, date1))

msgbox ("y - 一年中的年份: " & dateadd("y", -1, date1))

msgbox ("d - 一年中的一天: " & dateadd("d", -1, date1))

msgbox ("w - 工作日: " & dateadd("w", -1, date1))

msgbox ("ww - 星期: " & dateadd("ww", -1, date1))

msgbox ("h - 小時: " & dateadd("h", -1, "01-jan-2013 12:00:00"))

msgbox ("n - 分鐘: " & dateadd("n", -1, "01-jan-2013 12:00:00"))

msgbox ("s - 秒鐘 : " & dateadd("s", -1, "01-jan-2013 12:00:00"))

end sub

學習材料:

返回兩個指定的時間間隔之間的差值。

丸子:不太明白一年中的年和天是啥意思

用法datediff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

private sub constant_demo_click()

dim fromdate as variant

fromdate = "01-jan-2009 00:00:00"

dim todate as variant

todate = "01-jan-2010 23:59:00"

msgbox ("yyyy - 年份: " & datediff("yyyy", fromdate, todate))

msgbox ("q - 季度: " & datediff("q", fromdate, todate))

msgbox ("m - 一年中的月份: " & datediff("m", fromdate, todate))'給的引數裡面有倆 m

msgbox ("y - 一年中的年份: " & datediff("y", fromdate, todate))

msgbox ("d - 一年中的一天:" & datediff("d", fromdate, todate))

msgbox ("w - 工作日: " & datediff("w", fromdate, todate))

msgbox ("ww - 星期: " & datediff("ww", fromdate, todate))

msgbox ("h - 小時: " & datediff("h", fromdate, todate))

msgbox ("n - 分鐘: " & datediff("n", fromdate, todate))'給的引數裡面沒有 n

msgbox ("s - 秒鐘: " & datediff("s", fromdate, todate))

end sub

學習資料:

返回給定日期的特定部分。

用法datepart(interval,date[,firstdayofweek[,firstweekofyear]])

private sub datepart_demo_click()

dim quarter as variant

dim dayofyear as variant

dim weekofyear as variant

date1 = "2020-02-27"

quarter = datepart("q", date1)

msgbox ("q - 季度: " & quarter)

dayofyear = datepart("y", date1)

msgbox ("y - 一年中的年份: " & dayofyear)

weekofyear = datepart("ww", date1)

msgbox ("ww - 星期: " & weekofyear)

msgbox ("m - 一年中的月份: " & datepart("m", date1))

end sub

學習資料:

返回指定日期、月份和年份引數的日期。

丸子:分別輸入年月日,返回固定格式 yyyy/mm/dd

用法dateserial(year,month,day)

private sub constant_demo_click()

msgbox(dateserial(2020,2,27))

end sub

學習資料:

根據提供的引數格式化日期。

用法formatdatetime(date,format)

private sub formatdatetimedemo()

d = ("2020-02-27 12:32")

msgbox ("0 = vbgeneraldate - 預設值: " & formatdatetime(d))

msgbox ("1 = vblongdate - 返回長日期: " & formatdatetime(d, 1))

msgbox ("2 = vbshortdate - 返回短日期: " & formatdatetime(d, 2))

end sub

VBA學習筆記

答 一種可以自動反覆遍歷資料的巨集。9.錄製巨集?答 選擇 工具 巨集 錄製新巨集 在對話方塊中,為你將要做的巨集設定乙個快捷鍵。確定之後,可以看到乙個小的工具欄,上面有個 停 字。10.執行巨集?答 1 選擇任何乙個單元格。2 選擇 工具 巨集 巨集 顯示 巨集 對話方塊。3 選擇自己錄製的巨集名...

VBA學習筆記(7) vba的陣列函式

vba學習筆記 7 vba的陣列函式 說明 2017.3.25 1.split str,和join arr,函式,用法跟其他語言差不多。2.filter函式,filter 陣列,字串,true false 判斷乙個字元是否在陣列中,返回滿足條件的元素組成乙個陣列 filter函式,filter 陣列...

VBA 學習筆記 輸入框

學習資料 提示使用者輸入值。當輸入值後,如果使用者單擊確定 按鈕或按下鍵盤上的enter 鍵,inputbox函式將返回文字框中的文字。如果使用者單擊 取消 按鈕,該函式將返回乙個空字串 inputbox prompt title default xpos ypos helpfile,context...