了解 Excel VBA IsDate 函數

VBA 的 IsDate 函數可以告訴您文本字符串是否可以解釋為日期。例如,以下所有表達式的計算結果為 True:

IsDate(“5/25/2015”)
IsDate(“1 月 16 日”)
IsDate(“12-1”)
IsDate(“12/1/15”)
IsDate(“2/30”)
IsDate(“30/2”)

在最後兩個示例中,請注意 IsDate 對日和月的順序並不挑剔。這兩個字符串都可以解釋為日期,因此 IsDate 返回 True(無論您的系統日期格式設置如何)。

以下是Microsoft 支持文章中的一些信息:

VBA 日期函數 IsDate、Format、CDate 和 CVDate 使用 OLE 自動化 (OleAut32.dll) 中的函數。此函數通過標記表示日期的字符串中的每個分隔值來搜索所有可能的日期格式,並返回一個布爾值,指示輸入是否可以表示為日期。

在使用該函數來解釋包含 2 位數年份的日期時,記住這一點很重要。不同的語言環境使用不同的日期格式(即 mm/dd/yy、yy/mm/dd、DD MMM YY YY MMM DD 等),因此該函數會嘗試所有位置的數字,直到函數已找到有效日期或已用盡所有可能性。

僅僅因為 IsDate 將字符串識別為日期並不意味著該字符串可以可靠地轉換為日期。在某些情況下,結果是模棱兩可的。例如,這個表達式呢?

IsDate(“29-Feb-01”)

2001 年 2 月 29 日不是有效日期。但是,此表達式返回 True,因為 1929 年 2 月 1 日(和 1929 年 1 月 2 日)是有效日期。2029 年的那些日期也是如此。

對 IsDate 文檔的搜索是空的。根據測試,IsDate 接受以下任何字符作為分隔符:斜線 (/)、連字符 (-)、逗號 (,)、點 (.) 和空格。

因此,以下表達式都返回 True:

IsDate(“5.1”)
IsDate(“30 6”)
IsDate(“30,6”)
IsDate(“1/2”)

但隨後出現了異常:以下表達式返回 True:

IsDate(“5.1.5”)
IsDate(“5.1.05”)

然而,這個表達式不明確地返回 False:

IsDate(“5.1.2005”)

假設您創建了一個帶有 InputBox 的用戶窗體,用戶可以在其中輸入日期。應該清楚的是,使用 IsDate 來驗證條目不是很可靠。

當您意識到 IsDate 也涵蓋時間值時,事情會變得更加混亂。(沒有對應的 IsTime 函數。)所以,下面的表達式都返回 True:

IsDate(“4:45”)
IsDate(“4.45”)
IsDate(“4 45”)
IsDate(“4/45”)
IsDate(“23:59”)

這些表達式返回 False:

IsDate(“4:60”)
IsDate(“24.45”)

需要指出的是,當您傳遞 Range 參數時,IsDate 並沒有表現出所有這些怪癖。例如:

IsDate(範圍(“A1”))

似乎 IsDate 在識別包含日期或時間的單元格方面非常可靠。例如,它不會將包含 5.1 的單元格標識為日期。如果您的代碼需要確定一個字符串是否可以解釋為日期,最好的解決方案是將該字符串放入一個單元格中,然後編寫代碼來檢查單元格內容。

Leave a Comment

HTKK 5.0.3

HTKK 5.0.3

HTKK 是稅務總局免費發布的報稅支援軟體,提供企業快速建立報稅表。了解HTKK的安裝步驟與升級功能。

有用的 Microsoft Power Query 日期函數

有用的 Microsoft Power Query 日期函數

探索 Excel 中的 Microsoft Power Query 日期函數,快速處理日期計算和操作,其中包含添加天數、提取日期部分等功能的詳細說明。

如何在 Excel 2019 中使用 3D 地圖功能

如何在 Excel 2019 中使用 3D 地圖功能

3D 地圖是 Excel 2019 中提供的令人興奮的可視化分析功能,讓你能夠在 Excel 中創建動態的 3D 地圖。探索如何利用這項技術提升數據分析的效果。

如何在 Excel 中使用 SKEW 和 SKEW.P 函數

如何在 Excel 中使用 SKEW 和 SKEW.P 函數

了解如何在 Excel 中使用 SKEW 和 SKEW.P 函數來衡量數據分佈的偏度,這對於分析數據的對稱性至關重要。

如何為 Excel 儀表板創建時間線切片器

如何為 Excel 儀表板創建時間線切片器

時間軸切片器的工作方式與標準切片器的工作方式相同,因為它允許您使用視覺選擇機製過濾數據透視表。了解如何在 Excel 中使用時間軸切片器來高效管理日期字段。

如何在 Excel 2016 中使用 XLOOKUP 函數

如何在 Excel 2016 中使用 XLOOKUP 函數

了解如何在 Excel 2016 中使用 XLOOKUP 函數,這是一個 VLOOKUP 函數的優秀替代品,具有更強大和靈活的功能!

智能表9.1.1

智能表9.1.1

Smartsheet 是一個動態工作平台,可讓您管理專案、建立工作流程以及與團隊合作。

共享點

共享點

SharePoint 是一個基於 Web 的協作系統,它使用各種工作流程應用程式、「清單」資料庫和其他 Web 元件以及安全功能來控制業務群組的協同工作。

萬年曆1.0.38/1.0.36

萬年曆1.0.38/1.0.36

萬年日曆是一款手機上的日曆檢視應用程式,可協助您在手機上快速查看陰陽日期,從而安排您的重要工作。

微軟 Outlook 2021

微軟 Outlook 2021

Microsoft Outlook 是由 Microsoft Corporation 開發的商業和生產力應用程式。