最全常用vba函数精选,掌握效率翻倍

2023/06 10 17:06
阅读(510)

VBA (Visual Basic for Applications) 是微软 Office 套件中的一种宏语言,提供了许多内置函数,用于处理、操作数据、控制程序流程等。使用 VBA 内置函数有以下几点好处:

1、简化代码内置函数使得 VBA 代码变得更简短、更易于阅读和维护。通过使用内置函数,可以节省编写代码的时间,并且可以减少代码中的错误。

2、自动化任务 – 内置函数可以帮助自动化常见任务,例如将数据从一个单元格移动到另一个单元格或对文件进行操作。

3、提高程序效率 – 内置函数可以处理大量数据,从而提高程序的执行速度和效率。

4、方便开发者 – 内置函数提供了一些有用的功能,例如日期和时间处理、字符串处理、文件操作等,方便开发者完成 VBA 程序开发。

下面提供一些VBA常用内置函数的用法,共大家学习参考:

一、判断类函数:

1、IsNumeric(x)函数
功能:用于判断一个值是否为数字,返回True或False。
用法:IsNumeric(x)
参数:x: 必需,要判断的值。

示例:

Sub IsNumericExample()
    Dim str As String
    str = "123"
    If IsNumeric(str) Then
        Debug.Print "该值为数字"
    Else
        Debug.Print "该值不是数字"
    End If
End Sub

这个代码会输出:“该值为数字”。

2、IsDate(x)函数

功能:用于判断一个值是否为日期格式,返回True或False。
用法:IsDate(x)
参数:x: 必需,要判断的值。

示例:

Sub IsDateExample()
    Dim str As String
    str = "2022-01-01"
    If IsDate(str) Then
        Debug.Print "该值为日期格式"
    Else
        Debug.Print "该值不是日期格式"
    End If
End Sub

这个代码会输出:“该值为日期格式”。

3、IsEmpty(x)函数

功能:用于判断一个值是否为空值,返回True或False。
用法:IsEmpty(x)
参数:x为必需,要判断的值。

示例:

Sub IsEmptyExample()
    Dim str As String
    If IsEmpty(str) Then
        Debug.Print "该值为空值"
    Else
        Debug.Print "该值不是空值"
    End If
End Sub

这个代码会输出:“该值为空值”。

4、IsArray(x)函数

功能:用于判断一个值是否为数组,返回True或False。
用法:IsArray(x)
参数:
x: 必需,要判断的值。

示例:

Sub IsArrayExample()
    Dim arr() As Variant
    If IsArray(arr) Then
        Debug.Print "该值为数组类型"
    Else
        Debug.Print "该值不是数组类型"
    End If
End Sub

5、IsError(expression)函数

功能:用于判断一个值是否为错误类型,返回True或False。
用法:IsError(expression)
参数:expression: 必需,要判断的值。

示例:

Sub IsErrorExample()
    On Error Resume Next
    x = 1 / 0 ' 除以0,产生一个错误
    If IsError(x) Then
        Debug.Print "该值为错误类型"
    Else
        Debug.Print "该值不是错误类型"
    End If
End Sub

这个代码会输出:“该值为错误类型”。

6、IsNull(expression)函数

功能:用于判断一个值是否为Null值,返回True或False。
用法:IsNull(expression)
参数:expression: 必需,要判断的值。

示例:

Sub IsNullExample()
    Dim x As Variant
    x = Null
    If IsNull(x) Then
        Debug.Print "该值为Null值"
    Else
        Debug.Print "该值不是Null值"
    End If
End Sub

这个代码会输出:“该值为Null值”。

7、IsObject(identifier)函数

功能:用于判断一个值是否为对象类型,返回True或False。
用法:IsObject(identifier)
参数:identifier: 必需,要判断的值。

示例:

Sub IsObjectExample()
    Dim rng As Range
    Set rng = Range("A1")
    If IsObject(rng) Then
        Debug.Print "该值为对象类型"
    Else
        Debug.Print "该值不是对象类型"
    End If
End Sub

这个代码会输出:“该值为对象类型”。

二、VBA中的数学函数

1、Sin(X)函数

功能:用于返回一个数的正弦值。
用法:Sin(X)
参数:X: 必需,要计算正弦值的角度,以弧度表示。

示例:

Sub SinExample()
    Dim x As Double
    x = WorksheetFunction.Pi / 6 ' 30度
    Debug.Print Sin(x) ' 输出0.5
End Sub

2、Cos(X)函数

功能:用于返回一个数的余弦值。
用法:Cos(X)
参数:X: 必需,要计算余弦值的角度,以弧度表示。

示例:

Sub CosExample()
    Dim x As Double
    x = WorksheetFunction.Pi / 3 ' 60度
    Debug.Print Cos(x) ' 输出0.5
End Sub

3、Tan(X)函数

功能:用于返回一个数的正切值。
用法:Tan(X)
参数:X: 必需,要计算正切值的角度,以弧度表示。

示例:

Sub TanExample()
    Dim x As Double
    x = WorksheetFunction.Pi / 4 ' 45度
    Debug.Print Tan(x) ' 输出1
End Sub

4、Atan(X)函数

功能:用于返回一个数的反正切函数值。
用法:Atan(X)
参数:X: 必需,要计算反正切函数值的值。
示例:

Sub AtanExample()
    Dim x As Double
    x = 1
    Debug.Print Atan(x) ' 输出0.785398163397448
End Sub

5、Log(X)函数

功能:用于返回一个数的自然对数。
用法:Log(X)
参数:X: 必需,要计算自然对数的数值。
示例:

Sub LogExample()
    Dim x As Double
    x = 10
    Debug.Print Log(x) ' 输出2.30258509299405
End Sub

6、Exp(X)函数

功能:用于返回一个数的指数值。
用法:Exp(X)
参数:X: 必需,要计算指数值的数值。

示例:

Sub ExpExample()
    Dim x As Double
    x = 1
    Debug.Print Exp(x) ' 输出2.71828182845905
End Sub

7、Abs(X)函数

功能:用于返回一个数的绝对值。
用法:Abs(X)
参数:X: 必需,要计算绝对值的数值。

示例:

Sub AbsExample()
    Dim x As Integer
    x = -3
    Debug.Print Abs(x) ' 输出3
End Sub

8、Int(number)函数

功能:用于返回一个数的整数部分。
用法:Int(number)
参数:number: 必需,要计算整数部分的数值。

示例:

Sub IntExample()
    Dim x As Double
    x = 3.14
    Debug.Print Int(x) ' 输出3
End Sub

9、Fix(number)函数

功能:用于将一个数向零舍入,返回结果的整数部分。
用法:Fix(number)
参数:number: 必需,要向零舍入的数值。

示例:

Sub FixExample()
    Dim x As Double
    x = -3.8
    Debug.Print Fix(x) ' 输出-3
End Sub

10、Sgn(number)函数

功能:用于返回一个数的符号,返回值为-1(负数),0(0),1(正数)。
用法:Sgn(number)
参数:number: 必需,要判断符号的数值。

示例:

Sub SgnExample()
    Dim x As Integer
    x = -5
    Debug.Print Sgn(x) ' 输出-1
End Sub

11、Sqr(number)函数

功能:用于返回一个数的平方根。
用法:Sqr(number)
参数:number: 必需,要计算平方根的数值。

示例:

Sub SqrExample()
    Dim x As Double
    x = 16
    Debug.Print Sqr(x) ' 输出4
End Sub

12、Round 函数

功能:Round 函数用于将一个数四舍五入到指定的小数位数.
语法为 Round(number, [numdecimalplaces]). 其中,number 表示需要四舍五入的数,numdecimalplaces 表示保留的小数位数,默认为 0。

示例:

Sub test()
    MsgBox Round(3.1415926, 2) ' 返回 3.14
End Sub

13、Rnd(number)函数

功能:返回一个大于等于0,小于1的随机数。
用法:Rnd(number)
参数:number:可选,一个数字表达式,用于生成随机数的种子。如果省略该参数,则会使用系统时间作为种子。

Sub RndExample()
    Debug.Print Rnd(1)    ' 输出一个大于等于0,小于1的随机数,种子为1
End Sub

14、Choose(index, value1, value2, …)函数

功能:用于根据索引值返回列表中对应的值。
用法:Choose(index, value1, value2, …)
参数:
index: 必需,要返回的列表的索引位置。
value1: 必需,列表中第一个值。
value2: 必需,列表中第二个值。
…: 可选,其他的列表值。

示例:

Sub ChooseExample()
    Dim x As Integer
    x = 2
    Debug.Print Choose(x, "A", "B", "C", "D") ' 输出B
End Sub

三、VBA中的字符串函数

1、Len(string)函数

功能:用于返回一个字符串的长度。
用法:Len(string)
参数:string: 必需,要计算长度的字符串。

示例:

Sub LenExample()
    Dim str As String
    str = "hello world"
    Debug.Print Len(str) ' 输出11
End Sub

2、Left(string, length)函数

功能:用于返回字符串左边的n个字符。
用法:Left(string, length)
参数:

string: 必需,要从中提取字符的字符串。
length: 必需,要返回的字符串长度。

示例:

Sub LeftExample()
    Dim str As String
    str = "hello world"
    Debug.Print Left(str, 5) ' 输出hello
End Sub

3、Right(string, length)函数

功能:用于返回字符串右边的n个字符。
用法:Right(string, length)
参数:
string: 必需,要从中提取字符的字符串。
length: 必需,要返回的字符串长度。

示例:

Sub RightExample()
    Dim str As String
    str = "hello world"
    Debug.Print Right(str, 5) ' 输出world
End Sub

4、Mid(string, start, length)函数

功能:用于返回字符串中指定位置和长度的子字符串。
用法:Mid(string, start, length)
参数:
string: 必需,要返回一部分字符的字符串。
start: 必需,返回子字符串的起始位置。
length: 可选,返回子字符串的长度。

Sub MidExample()
    Dim str As String
    str = "hello world"
    Debug.Print Mid(str, 7, 5) ' 输出world
End Sub

5、UCase(string)函数

功能:用于将字符串转换为大写字母形式。
用法:UCase(string)
参数:
string: 必需,要转换的字符串。

Sub UCaseExample()
    Dim str As String
    str = "hello world"
    Debug.Print UCase(str) ' 输出HELLO WORLD
End Sub

6、LCase(string)函数

功能:用于将字符串转换为小写字母形式。
用法:LCase(string)
参数:
string: 必需,要转换的字符串。

示例:

Sub LCaseExample()
    Dim str As String
    str = "HELLO WORLD"
    Debug.Print LCase(str) ' 输出hello world
End Sub

7、Trim(string)函数

功能:用于去除字符串前后的空格。
用法:Trim(string)
参数:
string: 必需,要处理的字符串。

Sub TrimExample()
    Dim str As String
    str = "  hello world  "
    Debug.Print Trim(str) ' 输出hello world
End Sub

8、Replace(string, old, new, start, count, compare)函数

功能:用于替换字符串中的指定字符。
用法:Replace(string, old, new, start, count, compare)
参数:
string: 必需,要进行替换操作的字符串。
old: 必需,要被替换的字符。
new: 必需,用于替换的新字符或字符串。

示例:

Sub ReplaceExample()
    Dim str As String
    str = "hello world"
    Debug.Print Replace(str, "o", "*", , , vbTextCompare) ' 输出hell* w*rld
End Sub

9、Str(expression)函数

功能:在VBA中,Str函数用于将一个数字转换为表示该数字的字符串。
语法:Str(expression)
参数:
expression:必需,要转换为字符串的数字或包含数字的表达式。可以是任何有效的数值表达式,包括变量、常量、字段或属性。
返回值:返回表示数字的字符串。

示例:

Sub StrExample()
    Dim num As Double
    num = 3.14159
    Dim str As String
    str = Str(num)
    Debug.Print str    ' 输出3.14159
End Sub

10、StrComp(string1, string2[, compare])函数

功能:用于比较两个字符串并返回比较结果。
用法:StrComp(string1, string2[, compare])
参数:
string1: 必需,要进行比较的第一个字符串。
string2: 必需,要进行比较的第二个字符串。
compare: 可选,比较模式。可以是vbBinaryCompare(区分大小写)或vbTextCompare(不区分大小写),默认为vbBinaryCompare。
返回值:
如果string1等于string2,则返回0;
如果string1在string2之前,则返回-1;
如果string1在string2之后,则返回1。

示例:

Sub StrCompExample()
    Debug.Print StrComp("abc", "ABC") ' 输出1
    Debug.Print StrComp("abc", "ABC", vbTextCompare) ' 输出0
End Sub

11、Chr(charcode)函数

功能:用于返回指定字符代码的字符。
用法:Chr(charcode)
参数:
charcode: 必需,要返回的字符代码。

示例:

Sub ChrExample()
    Debug.Print Chr(65) ' 输出"A"
End Sub

12、Asc(string)函数

功能:用于返回字符串中第一个字符的 ASCII 码值。
用法:Asc(string)
参数:string: 必需,要返回 ASCII 码值的字符串。

示例:

Sub AscExample()
    Debug.Print Asc("A") ' 输出65
End Sub

13、StrReverse(string)函数

功能:用于反转字符串中的字符顺序。
用法:StrReverse(string)
参数:string: 必需,要进行反转的字符串。

示例:

Sub StrReverseExample()
    Debug.Print StrReverse("hello") ' 输出"olleh"
End Sub

14、InStr([start, ]string1, string2[, compare])函数

  • 功能:在VBA中,InStr函数用于在一个字符串中搜索一个子字符串,并返回子字符串在字符串中第一次出现的位置。
  • 语法:InStr([start, ]string1, string2[, compare])
  • 参数:
  • start:可选,表示开始搜索的位置。如果省略,则从字符串的第一个字符开始搜索。如果为负数,则从字符串的末尾开始倒计算,-1 表示从字符串的最后一个字符开始搜索。
  • string1:必需,要在其中搜索的字符串。
  • string2:必需,要搜索的子字符串。
  • compare:可选,表示指定比较类型的常数。默认值为vbBinaryCompare。
  • 返回值:如果找到子字符串,则返回子字符串在字符串中第一次出现的字符位置。如果未找到子字符串,则返回 0。

示例:

Sub InStrExample()
    Dim position As Integer
    position = InStr(1, "Hello, world!", "llo")
    Debug.Print position    ' 输出3
End Sub

15、InStrRev(string1, string2[, start[, compare]])函数

功能:用于在字符串中查找一个子字符串,并返回其从后往前的位置。
用法:InStrRev(string1, string2[, start[, compare]])
参数:
string1: 必需,要在其中搜索的字符串。
string2: 必需,要查找的子字符串。
start: 可选,用于指定开始搜索的位置。默认为字符串的最后一个字符。
compare: 可选,指定比较模式。可以是vbBinaryCompare(区分大小写)或vbTextCompare(不区分大小写),默认为vbBinaryCompare。

示例:

Sub InStrRevExample()
    Dim str As String
    str = "hello world"
    Debug.Print InStrRev(str, "lo") ' 输出4
    Debug.Print InStrRev(str, "LO", , vbTextCompare) ' 输出4
End Sub

在上面的示例中,从字符串的第 1 个位置开始搜索的,并找到字符串”llo”,返回其在字符串中第一次出现的位置,即第 3 个字符。

16、Join(expression[, delimiter])函数

功能:用于将数组中的元素组合成一个字符串。
用法:Join(expression[, delimiter])
参数:
expression: 必需,要组合的数组。
delimiter: 可选,用于指定分隔符的字符或字符串。如果省略该参数,则使用空格作为分隔符。

示例:

Sub JoinExample()
    Dim arr(2) As String
    arr(0) = "apple"
    arr(1) = "banana"
    arr(2) = "orange"
    Debug.Print Join(arr, ",") ' 输出apple,banana,orange
End Sub

17、Split(expression, [delimiter], [count], [compare])函数

功能:在VBA中,Split函数用于将一个字符串拆分成一个数组,每个元素都是字符串中的一个子字符串。
语法:Split(expression, [delimiter], [count], [compare])
参数:
expression:必需,要拆分为数组的字符串。
delimiter:可选,指定拆分字符串所用的字符。如果省略,则使用空格字符作为分隔符。
count:可选,指定返回数组的最大维数。如果省略,则返回一维数组。
compare:可选,指定用于比较字符值的方法。默认值为vbBinaryCompare。
返回值:返回一个包含拆分后的字符串的数组。

示例:

Sub SplitExample()
    Dim str As String
    str = "apple,orange,grape"
    Dim arr As Variant
    arr = Split(str, ",")
    Debug.Print arr(0)    ' 输出apple
    Debug.Print arr(2)    ' 输出grape
End Sub

在上面的示例中,字符串变量str包含三个水果名,使用逗号作为分隔符进行拆分,并将结果存储在变量arr中。可以使用数组下标访问每个元素。

18、Format(expression[, format[, firstdayofweek[, firstweekofyear]]])函数

功能:用于将表达式格式化为指定格式的字符串。
用法:Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
参数:
expression: 必需,要进行格式化的表达式。
format: 可选,指定格式字符串。
firstdayofweek: 可选,指定一周的第一天。默认为当前系统设置的值(0-7,其中0代表周日,1代表周一,以此类推)。
firstweekofyear: 可选,指定一年的第一周。默认为当前系统设置的值(0-2,其中0代表一年的第一个星期至少包含四天,1代表一年的第一个星期始终包含1月1日,2表示一年的第一个星期始终包含本年的第一个工作日)。

示例:

Sub FormatExample()
    Dim now As Date
    now = Now()
    Debug.Print Format(now, "yyyy-mm-dd hh:mm:ss") ' 输出2022-12-24 19:39:22
End Sub

四、VBA中的条件判断函数

1、If(condition, truepart, falsepart)函数

功能:用于根据条件判断返回两个值中的一个。
用法:If(condition, truepart, falsepart)
参数:
condition: 必需,要判断的条件表达式。
truepart: 必需,如果条件为True,返回的值。
falsepart: 必需,如果条件为False,返回的值。

示例:

Sub IfExample()
    Dim x As Integer
    x = 5
    Debug.Print If(x > 3, "x大于3", "x小于等于3")
End Sub

这个代码会输出:“x大于3”。

2、Switch(expr-1, value-1[, expr-2, value-2]…, [expr-n, value-n][, default])函数

功能:用于根据多个条件进行选择。
用法:Switch(expr-1, value-1[, expr-2, value-2]…, [expr-n, value-n][, default])
参数:
expr-1: 必需,用于比较的表达式。
value-1: 必需,如果条件满足,返回的值。
expr-2: 可选,用于比较的表达式。
value-2: 可选,如果条件满足,返回的值。
expr-n: 可选,用于比较的表达式。
value-n: 可选,如果条件满足,返回的值。
default: 可选,如果所有条件都不满足,返回的值。如果省略该参数,则默认返回Null。

示例:

Sub SwitchExample()
    Dim x As Integer
    x = 2
    Debug.Print Switch(x = 1, "x等于1", x = 2, "x等于2", x = 3, "x等于3", "x不是1、2、3中的任意一个")
End Sub

这个代码会输出:“x等于2”。

五、VBA中的日期时间函数

1、Now函数

功能:返回当前日期和时间。
用法:Now

示例:

Sub NowExample()
    Debug.Print Now    ' 输出当前日期和时间
End Sub

2、Date函数

功能:返回当前日期。
用法:Date

示例:

Sub DateExample()
    Debug.Print Date    ' 输出当前日期
End Sub

3、Time函数

功能:返回当前时间。
用法:Time

示例:

Sub TimeExample()
    Debug.Print Time    ' 输出当前时间
End Sub

4、Year(date)函数

功能:返回一个整数,表示指定日期的年份。
用法:Year(date)
参数:date:必需,要返回其年份部分的日期。

示例:

Sub YearExample()
    Debug.Print Year(#05/20/2000#) ' 输出 2000
End Sub

5、Month(date)函数

功能:返回一个整数,表示指定日期的月份。
用法:Month(date)
参数:date:必需,要返回其月份部分的日期。

Sub MonthExample()
    Debug.Print Month(#05/20/2000#) ' 输出 5
End Sub

6、Day(date)函数

功能:返回一个整数,表示指定日期的日份。
用法:Day(date)
参数:date:必需,要返回其日份部分的日期。

示例:

Sub DayExample()
    Debug.Print Day(#05/20/2000#) ' 输出 20
End Sub

7、Hour(time)函数

功能:返回一个整数,表示指定时间的小时部分。
用法:Hour(time)
参数:time:必需,要返回其小时部分的时间。

示例:

Sub HourExample()
    Debug.Print Hour(#4:30:45 PM#) ' 输出 16
End Sub

8、Minute(time)函数

功能:返回一个整数,表示指定时间的分钟部分。
用法:Minute(time)
参数:time:必需,要返回其分钟部分的时间。

示例:

Sub MinuteExample()
    Debug.Print Minute(#4:30:45 PM#) ' 输出 30
End Sub

9、Second(time)函数

功能:返回一个整数,表示指定时间的秒部分。
用法:Second(time)
参数:time:必需,要返回其秒部分的时间。

示例:

Sub SecondExample()
    Debug.Print Second(#4:30:45 PM#) ' 输出 45
End Sub

10、DateSerial(year, month, day)函数

功能:返回一个代表指定年、月、日的 Date 类型的值。
用法:DateSerial(year, month, day)
参数:
year:必需,表示要返回的日期的年份部分,可以是一个 4 位数。
month:必需,表示要返回的日期的月份部分,可以是一个从 1 到 12 的整数。
day:必需,表示要返回的日期的日份部分,可以是一个从 1 到 31 的整数,具体取值范围依赖于指定的月份和年份。

示例:

Sub DateSerialExample()
    Debug.Print DateSerial(2022, 12, 31) ' 输出 Dec 31, 2022
End Sub

11、TimeSerial(hour, minute, second)函数

功能:返回一个代表指定时间的 Date 类型的值。
用法:TimeSerial(hour, minute, second)
参数:
hour:必需,表示要返回的时间的小时部分,整数从 0 到 23 范围内。
minute:必需,表示要返回的时间的分钟部分,整数从 0 到 59 范围内。
second:必需,表示要返回的时间的秒部分,整数从 0 到 59 范围内。

示例:

Sub TimeSerialExample()
    Debug.Print TimeSerial(16, 30, 45) ' 输出 4:30:45 PM
End Sub

12、DateValue(datestring)函数

功能:返回由日期字符串表示的日期值。
用法:DateValue(datestring)
参数:datestring:必需,表示日期的字符串。

示例:

Sub DateValueExample()
    Debug.Print DateValue("2022-12-31") ' 输出 Dec 31, 2022
End Sub

13、TimeValue(timestring)函数

功能:返回由时间字符串表示的时间值。
用法:TimeValue(timestring)
参数:timestring:必需,表示时间的字符串。

示例:

Sub TimeValueExample()
    Debug.Print TimeValue("16:30:45") ' 输出 4:30:45 PM
End Sub

14、FormatDateTime(date[, format])函数

功能:将指定日期格式化为字符串。
用法:FormatDateTime(date[, format])
参数:
date:必需,需要进行格式化的日期。
format:可选,用于指定要使用的日期时间格式,可以是 vbGeneralDate、vbLongDate、vbShortDate、vbLongTime、vbShortTime 中的一种。默认为 vbGeneralDate。

示例:

Sub FormatDateTimeExample()
    Debug.Print FormatDateTime(#05/20/2000#, vbShortDate)  ' 输出 5/20/2000
    Debug.Print FormatDateTime(#05/20/2000 14:30#, vbLongDate) ' 输出 May 20, 2000
End Sub

15、DateAdd(interval, number, date)函数

功能:用于对日期进行加减运算。
用法:DateAdd(interval, number, date)
参数:
interval: 必需,一个字符串表达式,指定要添加的时间间隔。
number: 必需,要添加的日期时间间隔数量。
date: 必需,要进行加减运算的日期。
返回值:Date 类型的值。

示例:

Sub DateAddExample()
    Dim date1 As Date, date2 As Date
    date1 = DateValue("2022-01-01")
    date2 = DateAdd("m", 1, date1)
    Debug.Print date2 ' 输出2022-02-01
End Sub

16、DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])函数

功能:用于计算两个日期之间的时间差。
用法:DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
参数:
interval: 必需,一个字符串表达式,指定要计算的时间间隔。
date1: 必需,开始日期。
date2: 必需,结束日期。
firstdayofweek: 可选,指定一周的第一天。默认为当前系统设置的值(0-7,其中0代表周日,1代表周一,以此类推)。
firstweekofyear: 可选,指定一年的第一周。默认为当前系统设置的值(0-2,其中0代表一年的第一个星期至少包含四天,1代表一年的第一个星期始终包含1月1日,2表示一年的第一个星期始终包含本年的第一个工作日)。
返回值:Long 类型的值,表示两个日期之间的时间差。

示例:

Sub DateDiffExample()
    Dim date1 As Date, date2 As Date
    date1 = DateValue("2022-01-01")
    date2 = DateValue("2022-02-01")
    Debug.Print DateDiff("d", date1, date2) ' 输出31
End Sub

17、Weekday(date[, firstdayofweek])函数

功能:返回一个整数,表示指定日期所在的星期中的第几天。
用法:Weekday(date[, firstdayofweek])
参数:
date:必需,要返回其所在星期中的某一天的日期。
firstdayofweek:可选,指定一周的第一天。默认为当前系统设置的值(0-7,其中0代表周日,1代表周一,以此类推)。

示例:

Sub WeekdayExample()
    Debug.Print Weekday(#05/20/2000#) ' 输出 7,表示星期六
End Sub

18、WeekdayName(weekday[, abbreviate[, firstdayofweek]])函数

功能:返回指定星期所对应的文本值。
用法:WeekdayName(weekday[, abbreviate[, firstdayofweek]])
参数:
weekday:必需,一个整数,表示星期几。
abbreviate:可选,一个布尔值,指示是否返回缩写版的星期名称。如果省略该参数,则返回完整的星期名称。
firstdayofweek:可选,指定一周的第一天。默认为当前系统设置的值(0-7,其中0代表周日,1代表周一,以此类推)。

示例:

Sub WeekdayNameExample()
    Debug.Print WeekdayName(1)                      ' 输出 Monday
    Debug.Print WeekdayName(1, True)                ' 输出 Mon
    Debug.Print WeekdayName(1, False, vbSunday)     ' 输出 Sunday
End Sub

19、CDate(date)函数

功能:将指定的表达式转换为日期。
用法:CDate(date)
参数:date:必需,需要转换为日期的表达式。

示例:

Sub CDateExample()
    Debug.Print CDate("2022-05-20") ' 输出 5/20/2022
End Sub

20、Timer函数

功能:返回从午夜开始经过的秒数。
用法:Timer

示例:

Sub TimerExample()
    Debug.Print Timer    ' 输出从午夜开始经过的秒数
End Sub

好了,花了一下午的时间整理下VBA内置函数,希望对大家有所帮助,总的来说,VBA 内置函数能够提高代码的简洁性、可读性和可维护性,从而提高程序的效率和开发效率,所以需要熟悉掌握。

o郭二爷o原创或整理--转载请注明: https://www.dszhp.com/vba-function.html

发表回复

欢迎回来 (打开)

(必填)