首頁>科技>

今日的內容是“VBA之EXCEL應用”的第十章“VBA中日期和時間的處理”。這講是第1節“DateValue函式和DateAdd函式”。這套教程從簡單的錄製宏開始講解,一直到窗體的搭建,內容豐富,案例眾多。大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。

第一節 DateValue函式和DateAdd函式

大家好,我們先來認識一下日期,日期是包含一個年、月、日在內的特定的符號,當我們指定一個日期的時候,我們可以用DateValue函式,而且,當我們需要指定相隔某個天數後的日期時,我們可以用DateAdd函式來實現。我們這講就講解這兩個函式。

1 DateValue 函式

這個函式返回一個日期型的變數Variant (Date)。

語法:DateValue(date)

其中引數date是必需的,通常是一個字串表示式, 表示從100年1月1日到9999年12月31日之間的日期。但是,date 還可是任何表示該範圍內的日期、時間或日期和時間的表示式。

如果date是一個僅包含由有效日期分隔符分隔的數字的字串, 則DateValue將根據您為系統指定的短日期格式識別月、日和年的順序。DateValue還能清楚地識別包含月名稱(長名稱或簡寫形式)的日期。例如,除了識別 12/30/1991 和 12/30/91 之外,DateValue 還識別 December 30, 1991 和 Dec 30, 1991。如果省略 date 的年部分,則 DateValue 將使用計算機系統日期中的當前年。如果date引數包含時間資訊,則 DateValue 將不會返回它。但是,如果 date 包含的時間資訊無效(如“89:98”),則將出錯。2 DateAdd函式

這個函式返回一個日期變數 Variant (Date) 值,其中包含已添加了指定時間間隔的日期。

語法:DateAdd(interval, number, date)

引數:

interval 必需。 作為要新增的時間間隔的字串表示式。

number 必需。 作為要新增的時間間隔數的數值表示式。 它可以為正(獲取將來日期)或為負(獲取過去的日期)。

date 必需。 Variant (Date) 或文字,表示新增間隔的日期。

interval 引數具有以下設定

yyyy 年

q 季度

m 月

y 每年的某一日

d 天

w 工作日

ww 周

h 小時

n 分鐘

s 秒

可以使用 DateAdd 函式在日期中新增或減去指定時間間隔。 例如,您可以使用 DateAdd 計算從今日起 30 天后的日期或從現在起 45 分鐘後的時間。在使用“w”時間間隔(包括一週的所有天,從星期日到星期六)向日期新增天數時,DateAdd 函式會向日期新增您指定的總天數,而不是像您預期的那樣僅向日期新增工作日(從星期一到星期五)數。DateAdd 函式向1月31日新增一個月:DateAdd("m", 1, "31-Jan-95"),在此情況下,DateAdd 返回1995年2月28 日,而不是1995年2月31日。如果date為1996年1月31 日,則它將返回 1996年2月29日,因為1996年是閏年。如果計算的日期位於年份數 100 前(即,你減去的年份數大於 date 中的年份,則出現錯誤。如果 number 不是 Long 值,則在計算之前將其四捨五入到最接近的整數。DateAdd的返回值的格式由“控制面板”設定決定,而不是由date引數中傳遞的格式決定。3 DateValue 函式和DateAdd函式的例項應用

下面透過一個例項來看看這個兩個日期函式的具體應用:

程式碼:

Sub mynz()

Dim myExda, myFida, mySeda As Date

myExda = DateValue("Jan 19, 2020")

MsgBox Year(myExda)

myFida = DateValue("Jan 19, 2020")

mySeda = DateAdd("d", 3, myFida)

MsgBox mySeda

End Sub

程式碼截圖:

程式碼講解:

1)myExda = DateValue("Jan 19, 2020") 將字串"Jan 19, 2020"轉換為日期格式

2)MsgBox Year(myExda) 彈出上述日期的年份

3)mySeda = DateAdd("d", 3, myFida) 以日期計算,將myFida之後的第三個日期,複製給mySeda變數。

下面看程式碼的執行:

今日內容迴向:

1) DateValue函式的作用是什麼?

2) DateAdd函式的作用是什麼?

3) 如何理解DateAdd函式中各個引數的意義?

本講內容參考程式檔案:工作簿10.xlsm

分享成果,隨喜正能量

VBA的應用及學習方法:

VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我對VBA的應用界定。在取代OFFICE新的辦公軟體沒有到來之前,誰能在資料處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!

我記得20年前自己初學VBA時,那時的資料甚少,只能看原始碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了七部VBA專門教程。

第一套:VBA程式碼解決方案 是VBA中各個知識點的講解,教程共147講,覆蓋絕大多數的VBA知識點,提供的程式檔案更是一座不可多得的程式碼寶庫,是初學及中級人員必備教程;目前這套教程提供的版本是修訂第二版,程式檔案透過32位和64位兩種OFFICE系統測試。

第二套:VBA資料庫解決方案 資料庫是資料處理的專業利器,教程中詳細介紹了利用ADO連線ACCDB和EXCEL的方法和例項操作,適合中級人員的學習。目前這套教程提供的是修訂第一版教程,程式檔案透過32位和64位兩種OFFICE系統測試。

第三套:VBA陣列與字典解決方案 陣列和字典是VBA的精華,字典是VBA程式碼水平提高的有效手段,值得深入的學習,是初級及中級人員程式碼精進的手段。目前這套教程提供的版本是修訂第一版,程式檔案透過32位和64位兩種OFFICE系統測試。

第四套:VBA程式碼解決方案之影片 是專門面向初學者的影片講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的影片講解,影片更易接受。

第五套:VBA中類的解讀和利用是一部高階教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。這套教程的領會主要是讀者的領悟了,領悟一種佛學的哲理。目前這套教程提供的版本是修訂第一版,程式檔案透過32位和64位兩種OFFICE系統測試。

第六套教程:VBA資訊獲取與處理,是一部高階教程,涉及範圍更廣,實用性更強,面向中高階人員。教程共二十個專題,包括:跨應用程式資訊獲得、隨機資訊的利用、電子郵件的傳送、VBA網際網路資料抓取、VBA延時操作,剪下板應用、Split函式擴充套件、工作表資訊與其他應用互動,FSO物件的利用、工作表及資料夾資訊的獲取、圖形資訊的獲取以及定製工作表資訊函式等等內容。程式檔案透過32位和64位兩種OFFICE系統測試。

第七套教程:VBA之EXCEL應用 這是一部初級教程這部教程共三冊,從從建立宏、對話方塊、工作簿和工作表物件、單元格物件等基礎內容講起,到迴圈結構、錯誤處理、字串操作、日期和時間、事件、陣列應用,函式過程等方面,一直講解到控制元件和窗體物件的應用都是我們提高自己EXCEL水平的必須。

以上各教程學習順序:7→1(或者4)→3→2→6→5。其中第四套是對第一套的影片講解,所以第一和第四隻選其一即可。

8
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 談談 GKE Autopilot