Excel中VBA编程学习笔记(五)

 

28、程序运行时间统计

Sub test()

    begin_time = Timer

    For i = 1 To 1000

        For j = 1 To 10000

            x = x + 1 * 2

        Next

    Next

    end_time = Timer

    MsgBox "运行用时" & Format(end_time - begin_time, "0.00")

End Sub

29、split函数及join函数

split函数用于分割字符串并返回一个下标从0开始的数组,它包含指定的自字符串数目

Dim direc

Set direc = CreateObject("Scripting.Dictionary")

contents = Split(Content, ",")    ‘分割符为逗号

For k = LBound(contents) To UBound(contents)

direc(contents(k)) = direc(contents(k)) + 1

Next

Key = direc.Keys

Value = direc.items

[B1].Resize(direc.Count, 1) = Application.Transpose(Key)

[C1].Resize(direc.Count, 1) = Application.Transpose(Value)

 

jion函数返回一个字符串,该字符串通过连接某个一维数组的多个自字符串而创建的

arr = [{"武汉","广州","深圳"}]

res = Join(arr, ";") '得到武汉;广州;深圳

30、filter函数

filter函数返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。语法如下:

Filter(sourcesrray, match[, include[, compare]])

Filter函数语法有如下的命名参数:

部分

描述

sourcearray

必需的。要执行搜索的一维字符串数组。

match

必需的。要搜索的字符串。

include

可选的。Boolean值,表示返回子串包含还是不包含match字符串。如果includeTrueFilter返回的是包含match子字符串的数组子集。如果includeFalseFilter返回的是不包含match子字符串的数组子集。

compare

可选的。数字值,表示所使用的字符串比较类型。有关其设置,请参阅下面的“设置值”部分。

 

设置值

Compare参数的设置值如下:

常数

描述

vbUseCompareOption

–1

使用Option Compare语句的设置值来执行比较。

vbBinaryCompare

 0

执行二进制比较。

vbTextCompare

 1

执行文字比较。

vbDatabaseCompare

 2

只用于Microsoft Access。基于您的数据库信息来执行比较。

 

arr = [{"abc","bb","bp","c","eda","tubdu"}]

res1 = Filter(arr, "b", True) '{"abc","bb","bp","tubdu"}

res2 = Filter(arr, "b", False) '{"c","eda"}

31、自动关闭的消息框

语法:

wshell.Popup(StrText,[natsecondsToWait],[strTitle],[natType]=inButton)

参数说明:

StrText为提示文本,natsecondsToWait为等待时间,natType为按钮类型。

【例】

Sub test()

    Dim wshell As Object

    Set wshell = CreateObject("Wscript.Shell")

    wshell.popup "执行完毕!", 1, "提示", 64    ‘1s后自动关闭

    Set wshell = Nothing

End Sub

 

32、使用inputBox限制输入内容

语法:

expression.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextId,Type)

参数说明:

参数

说明

Prompt

消息框提示字符串(必须参数)

Title

输入框标题

Default

输入文本框缺省内容

Left

相对于屏幕左上角的x坐标

Top

相对于屏幕左上角的y坐标

HelpFile

上下文相关帮助

HelpContextId

帮助编号

Type

返回的数据类型,缺省为文本类型。

 

Type的参数可取值如下:

数值

说明

0

一个公式

1

一个数字

2

文本(字符串)

4

一个逻辑值(TRUE或FALSE)

8

一个单元格引用你

16

一个错误值

64

一个值得数组

注意:

  1. Application.InputBox调用的是InputBox方法,而不带标识的InputBox调用的InputBox函数;
  2. InputBox方法比InputBox函数具有更好的内置出错处理;
  3. 当用户点击“取消”时,InputBox方法返回的是FALSE,而InputBox函数返回的是长度为0的字符串。

 

【例1】

Sub test()

    Dim num

    num = Application.InputBox(Prompt:="请输入一个数值", Title:="输入", Type:=1)    '调用InputBox方法

    If num <> False Then

        MsgBox "输入内容为:" & Chr(10) & num

    Else    '取消输入时返回FALSE

        Debug.Print "用户取消了输入"

    End If

   

End Sub

当输入的不是数字是会有如下提示:

 

【例2】

Sub test()

    Dim rng As Range

    On Error GoTo line

    Set rng = Application.InputBox(prompt:="请选择区域", Type:=8)

   

    Dim res$

    For Each Row In rng.Rows

        For Each cell In Row.Cells

            res = res & cell.Value & Chr(9) '同一行不同值用制表符隔开

        Next

        res = res & Chr(10)

    Next

    MsgBox "选择区域内容如下:" & Chr(10) & res '加上换行符

   

line:

    If Err.Number <> 0 Then

        MsgBox Err.Description

    End If

End Sub

 

 

猜你喜欢

转载自blog.csdn.net/huzhizhewudi/article/details/84497370
今日推荐