ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 操作与技巧 > 罗刚君VBA免费课作业题】之第13课作业

罗刚君VBA免费课作业题】之第13课作业

作者:绿色风 分类: 时间:2022-08-18 浏览:165
楼主
罗刚君
提示:此题目是“VBA入门免费教学群”(群号:30729794)的课后作业
请未参与听课者绕道,谢谢配合。

1.看图 :

 
在上图的工作表中查找红色的“改锥”,并报告其地址,代码如下:
  1. Sub 查找红色的改锥所在单元格地址()
  2.     Application.FindFormat.Clear   '清除以前的查找格式
  3.     Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
  4.    '获取查找对象的地址
  5.     MsgBox Range("C:C").Find("改锥", xlWhole, True).Address
  6. End Sub
执行代码会出错?错在哪里?应如何修改代码?
提示:要解决此问题,看看Range.Find的帮助即可,配合上课时的讲的理论,足以解决。

2.说说可选参数的用途是什么?
3.用什么办法将一个必选参数变成可选参数?
4.什么情况下适用带参数的过程?它有何优势?

_____________________________________________________
补充:“VBA入门免费教学群”(群号:30729794)每周三上课一次,有兴趣者皆可报名,永远免费。
请提交作业时注明在免费听课群的昵称。三次不交作业者,将踢出群,让出空间让更多的人进来听课,请大家配合。
2楼
kcxs
客城小生的第13课作业

第1题:
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, SearchFormat:=True).Address
End Sub

2.可选参数的用途:可选参数则既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA会调用该参数的默认值。

3.将一个必选参数变成可选参数的办法:通过Optional。

4.通常是一个过程需要多次调用时才用参数。过程名称中的参数通常用于传递常数或者变量,强化过程的功能。某个过程需要调用多个子过程时,如果没有使用参数,代码显得烦琐;如果过程可以使用参数,那么问题将化繁为简。事实上参数在工作中还有更复杂的应用,代码越复杂时参数越能体现其优势。
3楼
miantiao1
1:代码修改为如下的样式
        MsgBox Range("C:C").Find("改锥", LookAt:=xlWhole, MatchCase:=True).Address

2.说说可选参数的用途是什么?
        答:使定义的过程更合理化,同时可以减少可选参数的赋值命令

3.用什么办法将一个必选参数变成可选参数?
        答:1:在该参数名称前添加Optional关键字
            2:被Optional限制的参数必须是靠后的位置,即它的右边没有必选参数。

4.什么情况下适用带参数的过程?它有何优势?
        答: 使用带有参数的过程更加人性化。
        在执行重复的过程命令时使用带参数的过程,可以减少代码的大小,避免程序员多次书写差异极小的过程而增加的工作量,
        同样在带有参数的过程中加入防错代码后,更能提高过程运行的准确程度。
4楼
ynzsvt
标题内容
第13课练习.zip
5楼
NULL
1.MsgBox Range("C:C").Find(what:="改锥", lookat:=xlWhole, SearchFormat:=True).Address
2.便利,功能更强大.
3.将参数放置在必选参数(如果有)右侧,并添加关键字optional.
4.若一个过程只需修改一个或几个固定的的数据,并反复使用时.就需要建立一个带参数的过程..
优势有两点, (1).代码简洁,美观,录入方便,
            (2).方便修改.如果代码需要修改,只需修改主过程即可.
6楼
NULL
1.MsgBox Range("C:C").Find(what:="改锥", lookat:=xlWhole, SearchFormat:=True).Address
2.便利,功能更强大.
3.将参数放置在必选参数(如果有)右侧,并添加关键字optional.
4.若一个过程只需修改一个或几个固定的的数据,并反复使用时.就需要建立一个带参数的过程..
优势有两点, (1).代码简洁,美观,录入方便,
            (2).方便修改.如果代码需要修改,只需修改主过程即可.
7楼
NULL
1.MsgBox Range("C:C").Find(what:="改锥", lookat:=xlWhole, SearchFormat:=True).Address
2.便利,功能更强大.
3.将参数放置在必选参数(如果有)右侧,并添加关键字optional.
4.若一个过程只需修改一个或几个固定的的数据,并反复使用时.就需要建立一个带参数的过程..
优势有两点, (1).代码简洁,美观,录入方便,
            (2).方便修改.如果代码需要修改,只需修改主过程即可.
8楼
杨_堃
Yangk的作业
北京-Yangk第13课作业.rar
9楼
tchsong
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
   ' Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", , , , xlWhole, True).Address
End Sub
2.说说可选参数的用途是什么?
传递参数
使代码简洁
3.用什么办法将一个必选参数变成可选参数?
optional i as byte = 1
4.什么情况下适用带参数的过程?它有何优势?
多个过程都需要对参数进行多次判断及循环导致整个工程代码偏长,可使用参数过程,
优势就是让代码更简洁更清晰速度也会提升。
10楼
乌鸦…换毛ing
  1. Sub 查找红色的改锥所在单元格地址()
  2.     Application.FindFormat.Clear   '清除以前的查找格式
  3.     Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
  4.    '获取查找对象的地址
  5.     MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, matchcase:=True).Address
  6. End Sub
11楼
manuel442
QQ昵称:智山仁水
1、参数赋值错误,应该改为,MsgBox Range("C:C").Find("改锥", LookAt:=xlWhole,MatchByte:=True).Address
2、可选参数的用途是可以设置默认值,当用户不对可选参数赋值时就按默认值运行。
3、将该参数前加 optional 就可以将其变为可选参数,需要注意的是,被Optional限制的参数必须是靠后的位置,即它的右边没有必选参数.
4、如果需要重复调用 一个类似过程,该过程只是条件不同,这时就可以考虑使用参数,提高过程的通用性,提高编程效率。
12楼
转角爱
不坏635731146
作业.rar
13楼
lene
1、对参数赋值错误,按位置赋值,可选参数用逗号间隔;按名称赋值,参数名称:=赋值,可选参数可以省略
改为MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, Matchbete:=True).Address
或者 MsgBox Range("C:C").Find("改锥", , , xlWhole, , , True).Address
2.说说可选参数的用途是什么?
可选参数则既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA会调用该参数的默认值。

3.用什么办法将一个必选参数变成可选参数?
1)        optional
2)        ParamArray

4、        什么情况下适用带参数的过程?它有何优势?
处理一个问题,可能出现多种选择时用参数,做自定义选择(心明口不明,感觉说不清楚)
优势:可以通过参数从主过程中传递到子过程,从而使操作对象不再固定,可以随意修改,程序更强大、灵活,代码更为简洁
14楼
paoge
1答:参数赋值方式有错。

改:Sub 查找红色的改锥所在单元格地址()

    Application.FindFormat.Clear   '清除以前的查找格式

    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色

   '获取查找对象的地址

    MsgBox Range("C:C").Find("改锥", lookAt:=xlWhole, MatchCase:=True).Address

End Sub
2、答:可选参数则既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA 会调用该参数的默认值。可选参数的传递更加灵活。

3答:可以在必选参数名称前添加 Optional 关键字。同时还需要对其赋予默认值。被 Optional 限制的参数必须是靠后的位置,即它的右边没有必选参数。Optional 一次只能将一个参数转换成可选参数,而使用 ParamArray 可以将一个参数转换成不确定个数的参数。

4、要用很多过程解决同一种问题的时候,用带参数的过程能简化程序。如:下面的代码包括 4 个过程,前面 3 个过程分别对应早中晚的信息提示,第 4 个过程“问
候”将根据当前时间来决定调用哪一个过程。4 个过程都存放在模块中。
由于过程没有参数,所以需要使用 3 个过程实现三个需求。如果有 10 个需求则需要改
用 10 个过程。
__________________________________________________________________________
Sub a()
MsgBox "早上好"
End Sub

Sub b()
MsgBox "中午好"
End Sub

Sub c()
MsgBox "下午好"
End Sub

Sub 问候() '分别调用三个不同过程
If Hour(Now) < 12 Then '如果小于 12 点
Call a '调用过程 a
ElseIf Hour(Now) < 13 Then '如果小于 13 点(即 12 点-13 点之间)
Call b '调用过程 b
Else '否则
Call c '调用过程 c
End If
End Sub

如果使用带参数的过程,那么问题将化繁为简。

Sub Hello(Mystr) '过程 Hello 有一个参数
MsgBox Mystr '提示信息的内容即为参数的值
End Sub
Sub 问候() '调用有参数的过程
If Hour(Now) < 12 Then '如果小于 12 点
Call Hello("上午好") '调用过程 Hello,将传递参数“上午好”
ElseIf Hour(Now) < 13 Then '如果小于 13 点(即 12 点-13 点之间)
Call Hello("中午好") '仍然调用过程 Hello,将传递参数“中午好”
Else '否则
Call Hello("下午好") '仍然调用过程 Hello,将传递参数“下午好”
End If
End Sub
拥有参数的过程也将使过程更强大、更灵活,例如过程的功能是对一个当前表的已用数据区域求和,它的功能被限制为指定的工作表和指定的区域。如果对过程使用了参数,那么工作表名称和区域地址可以通过参数从主过程中传递到子过程,从而使操作对象不再固
定,可以随意修改,从而使程序更强大、灵活。
15楼
一片叶子
@小鱼
  执行代码会出错?错在哪里?应如何修改代码?
  答:Find方法有多个参数,需要在代码中按参数逐一赋值,对于可选参数可用逗号站位即可。
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", , , xlWhole, , , True).Address
End Sub
2.说说可选参数的用途是什么?
答;用途:过程名称后面参数相当于一个自定义项,可以按自己的要求选取;过程中的参数传递常量或者变量。
3.用什么办法将一个必选参数变成可选参数?
答:在过程参数名称中使用Optional.
4.什么情况下适用带参数的过程?它有何优势?
答:反复调用同一种方法时,适用带参数过程。它可以避免重复调用,只要修改参数即可。
16楼
gaoshuichang1
1、参数的位置顺序不对,需要在代码中对参数按预设的顺序逐一赋值或指定正确的参数名称。
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, SearchFormat:=True).Address
End Sub
Sub 查找红色的改锥所在单元格地址2()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", , , xlWhole, , , , , True).Address
End Sub2.说说可选参数的用途是什么?
可选参数既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA 会调用该参数的默认值。
3.用什么办法将一个必选参数变成可选参数?
必选参数前添加Optional,同时还要对其赋予默认值,且它的右边没有必选参数.
4.什么情况下适用带参数的过程?它有何优势?
需要通过调用过程来实现的情况下

当过程使用了参数后,该过程将灵活得多,一个过程可以实现前面的几个过程的功能,在调用带参数的主过程中对过程的参数赋值即可,过程接收了什么参数就弹出什么提示信息,而不是只能显示原本固定的信息,即使需要弹出1000种信息,同样只需要一个带参数的过程来实现,而不需要写1000个子过程。
17楼
健康快乐123
c05:水上漂123
第一题:msgbox range("c:c").find("改锥",xlwhole,ture).address出错,由于参数的位置不对造成错误,find有9个参数
分别是what,after,lookin,lookat,searchorder,searchdirction,matchcase,matchbyte,searchformat
xlwhole是lookat的常量形式,true是matchcase的值,修改可以用两种方法,一种是用逗号占位,使用参数的位置正确
一种是写出参数名即lookat:=xlwhole,matchcase:=true
第二题:可以提供代码的灵活性
        可以增强代码的功能
第三题:在前面加上optional,每次只能转一个,并且它的右边不能有必选参数
第四题:反复使用过程的时适用带参数的过程
        提高过程的灵活性和功能

18楼
一点点
糊啦啦

1、Sub 查找红色的改锥所在单元格地址()

    Application.FindFormat.Clear    '清除以前的查找格式
    Application.FindFormat.Font.Color = 255    '设置查找对象的字体颜色  
     (这句代码真神奇,既没指定某行某列又没指定某个单元格,为什么下面的代码找的不是C8的改锥呢?,如果下面的代码参数位置不对的话,找的就是C8的改锥又不是C12的红色改锥了。我的意思说这句代码跟下面的代码有关联吗?)
   
   
    '答:每个参数之间要用;号分隔占位才可以
    MsgBox Range("C:C").Find("改锥", , , xlWhole, , , , , True).Address
   
    '或:不用;号占位的话,就要声明参数类型
    MsgBox Range("c:c").Find(what:="改锥", lookat:=xlWhole, searchformat:=True).Address
End Sub

2、可选参数可以在未赋值的情况下显示默认值 (这个回答没底气)

3、若要把必须参数变成可选参数,在可选参数的前面加上 optional。
    注意:多个参数的情况下,可选参数只能在最右侧,也就是说把可选参数放到最末尾的位置

4、过程的参数相当于一个软件的自定义选项,有了足够的自定义选项,软件才能适应工作中灵活多变的需求。参数让程序更强大更灵活(知道道理了,自己用估计还不会)
19楼
天空的雨
免费听课群-天空
跟着免费听课群学习,不能准时听课,但会努力跟上,谢谢老师的课件。

答第一题:FIND方法的参数位置有误。XLWHOLE是第四参数的选项,true理解为查找格式第九参数。可改成
MsgBox Range("C:C").Find(What:="改锥", LookAt:=xlWhole, SearchFormat:=True).Address
或者
Range("C:C").Find("改锥",,,xlWhole, ,,,,True).Address


答第二题:过程名称中的参数写在过程名称后面的括号中,它能扩展过程的功能,使过程更强大、更灵活。
过程名称中的参数通常用于传递常数或者变量,强化过程的功能。

答第三题:参数名称前加Optional关键字,可使必选参数变成可选参数。

答第四题:过程中有多种判断时,可借用参数来简化代码。
方法中的参数过多时,可(参数名:=参数值)来加强代码可读性。
20楼
cxleaf
按时交作业
第13课作业(cxleaf).rar
21楼
csppglass
题1:
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find(what:="改锥", Lookat:=xlWhole, searchformat:=True).Address
End Sub
题2:
   扩展程序的功能,使程序更加灵活。
题3:
   使用optional转换。
题4:
   需要多次调用的时候使用带参数的过程,或者需要判断的时候。简化程序,使程序更加灵活。
22楼
csppglass
题1:
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find(what:="改锥", Lookat:=xlWhole, searchformat:=True).Address
End Sub
题2:
   扩展程序的功能,使程序更加灵活。
题3:
   使用optional转换。
题4:
   需要多次调用的时候使用带参数的过程,或者需要判断的时候。简化程序,使程序更加灵活
   这次的作业是最不理解的了,看了几次主课件才懂那么一点点!
                                         江苏0基

23楼
hunt
hehex 作业:
第一题:find 方法的参数位置和实际参数值不对应。
应改为:  msgbox Range("c:c").Find("改锥", lookat:=xlWhole, MatchCase:=True)
或者删除掉TRUE 和 xlWhole 因为这2个参数和本题关系不大。 msgbox Range("c:c").find("改锥")
也可以。

第二题: 可选参数使程序调用时更加灵活,对调用者更加友好,简单。
第三题: 在该参数前使用关键字 Optional 并赋予初值。(该参数后面不得有必选参数)
第四题:   某些比较复杂的需求,要求过程调用更加灵活多变的情况。
24楼
nocturne
25楼
冰淇林的冬天
第一题
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find(what:="改锥", lookat:=xlWhole, MatchCase:=True).Address
End Sub
第二题
可选参数的用途
可选参数则既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA会调用该参数的默认值。
第三题
在参数前面加上ParamArray或Optional函数,可以函数后面的全部或一个参数变为可选参数
第四题
当需要将主过程中的值传递到子过程,或需要的操作对象,操作方式不确定时,适用带参数的过程
使用带参数的过程可以增加自定义选项,使过程更灵活。
26楼
lb425319789
2、可选参数既可以赋值,也可以不赋值,使用更加灵活。
3、在参数前面加optional关键字,可以将参数转化为可选参数。
4、当代码比较复杂时,可以使用带参数的过程,将问题化繁为简,同时代码越复杂,越能体现参数的价值。
27楼
老固
1.看图 :

在上图的工作表中查找红色的“改锥”,并报告其地址,代码如下:
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", C1, lookat:=xlWhole, MatchCase:=True).Address
End Sub


2.        说说可选参数的用途是什么?
答:有了参数,程序才更强大,更灵活同理,拥有参数的过程也将使过程更强大、更灵活,例如过程的功能是对一个当前表的已用数据区域求和,它的功能被限制为指定的工作表和指定的区域。
如果对过程使用了参数,那么工作表名称和区域地址可以通过参数从主过程中传递到子过程,从而使操作对象不再固定,可以随意修改,从而使程序更强大、灵活。

3.用什么办法将一个必选参数变成可选参数?
答:通过Optional将两个参数转换成可选参数
4.什么情况下适用带参数的过程?它有何优势?
答:以新建工作表为例:反复创建工作表时,通过一个带参数的“新建工作表”可以大大简化代码,在过程“新建工作表”中使用了多个判断语句,如果不使用带参数的过程,那么新建三次工作表时需要重复判断三次,而使用一个带参数的过程,只需要在一个过程中判断一次,调用时不再做任何判断,直接Call它就行了。

28楼
静思雨
1、没有对参数名称赋值,修改如下:
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, matchbyte:=True).Address
End Sub

2、增加代码的灵活性和适用范围

3、将参数放在必选参数右边,并使用Optional限制参数

4、需要对参数多次重复判断得出结果的情况下
   简化代码 方便修改


Q昵称:[浙]-小影
29楼
qing33670000
1、
  1. Sub 查找红色的改锥所在单元格地址()
  2.     Application.FindFormat.Clear   '清除以前的查找格式
  3.     Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
  4.    '获取查找对象的地址
  5.     MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, MatchCase:=True).Address
  6. End Sub
2、可选参数既可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA 会调用该参数的默认值。

3、Optional 可以把一个必选参数转换成可选参数。

4、过程名称中的参数写在过程名称后面的括号中,它能扩展过程的功能,使过程更强大、更灵活。
30楼
本人号被盗,
河南蓝天 249229293   抱歉第一题没解答出,
1、Sub 查找红色的改锥所在单元格地址()

    Application.FindFormat.Clear   '清除以前的查找格式

    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色

   '获取查找对象的地址

    MsgBox Range("C:C").Find("改锥", xlWhole, True).Address

End Sub



2\带可选参数的简化程序,便于调用程序。
3、a、用optional一次将一个参数变成可选
   b、paramarray可以将一个参数转换成不确定个数的参数
4、当需要反复执行程序时,通过带参数的程序可以大大简化代码,并且简化判断,可以直接使用
31楼
hjsky
四川-幺幺第十三课作业.rar
,老师辛苦了
32楼
jsrgsunny
QQ:1975225261 江苏-阳光明媚
1、Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    Set c = Range("C:C").Find("改锥")
    If Not c Is Nothing Then
    c.Select
    MsgBox c.Address
    End If
End Sub
2、可选参数能使 Range.Copy 方法更灵活,有更多的可选空间。
3、在该参数名称前添加 Optional 关键字。
4、如果对过程使用了参数, 那么工作表名称和区域地址可以通过参数从主过程中传递到子过程,从而使操作对象不再固定,可以随意修改,从而使程序更强大、灵活。
33楼
zjyxp
1.
Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", lookat:=xlWhole, MatchCase:=True).Address
End Sub
2.说说可选参数的用途是什么?
拥有参数的过程也将使过更强大、灵活。
3.用什么办法将一个必选参数变成可选参数?
  参数区分可选与必选,必选参数是必须赋值才能让过程正确执行的参数,可选参数则既可以对参数赋值也可以不赋值,当未手动为

可选参数赋值时,VBA会调用该参数的默认值。
4.什么情况下适用带参数的过程?它有何优势?
重复某个程序时。需要使用一个带参数的过只在程中判断一次,直接程调用直接Calll它就行了。无须多次
34楼
Crazywu
群名片:湖北-Craywu
---------------------------
提示:此题目是“VBA入门免费教学群”(群号:30729794)的课后作业
请未参与听课者绕道,谢谢配合。

1.看图 :
  
在上图的工作表中查找红色的“改锥”,并报告其地址,代码如下:

1.        Sub 查找红色的改锥所在单元格地址()
2.            Application.FindFormat.Clear   '清除以前的查找格式
3.            Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
4.           '获取查找对象的地址
5.            MsgBox Range("C:C").Find("改锥", xlWhole, True).Address
6.        End Sub
复制代码
执行代码会出错?错在哪里?应如何修改代码?
提示:要解决此问题,看看Range.Find的帮助即可,配合上课时的讲的理论,足以解决。
答:未指定find参数,第5行改为
5.    MsgBox Range("C:C").Find(what:="改锥", LookAt:=xlWhole, SearchFormat:=True).Address
2.说说可选参数的用途是什么?
答:能更快捷方便的指定过程方式。
3.用什么办法将一个必选参数变成可选参数?
答:通过Optional关键字进行声明。
4.什么情况下适用带参数的过程?它有何优势?
答:其他过程需调用时适用带参数的过程,能够简化代码,其他过程能随意调用。
35楼
ff8shi
                     石头作业:
第一题:
代码会出错,原因在于类型不匹配,应该改为:
  1. MsgBox Range("a:a").Find("改锥", , , xlWhole).Address

  2. MsgBox Range("a:a").Find("改锥", LookAt:=xlWhole).Address
第二题:
      可选参数即可以对参数赋值也可以不赋值。
第三题:
       在该参数名称前添加Optional或者ParamArray关键字即可.如果使用了Optional,则后继所有参数必须是可选的, 而且必须都使用Optional关键字声明。如果使用了ParamArray,则任何参数都不能使用Optional.
     Optional一次只能将一个参数转换成可选参数,而ParamArray则可以提供任意数量的可选参数,不过它不能与byval,byref,Optional一起使用。

第四题:
      需要多次重复操作时,使用带参数的过程,可以大大简化代码。
36楼
龙泉剑
看不懂,发现自己的VBA没有水平,从头学习。
37楼
caihaiyu
qq115934012  昵称  海域

1.range.find后面的可选参数不能直接写参数值,应该写成"参数名":=值
2.可选参数可以令函数更灵活,使用范围更广
3.定义参数前加Optional
4.当一个过程中需要根据不同情况调用多次时,使用带参数的过程会十分方便,也使代码简洁很多
38楼
xj_lucky
1、
Sub 查找红色的改锥所在单元格地址()

    Application.FindFormat.Clear   '清除以前的查找格式

    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色

   '获取查找对象的地址

    MsgBox Range("C:C").Find("改锥", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True).address

End Sub

2、需要将某个参数设置为可选参数时,在该参数名称前添加Optional 关键字即可。同时还需要对其赋予默认值,从而当调用过程未指定参数值是VBA会调用此默认值。
3、需要将其中一个可选参数转换成必选参数的话,只能将第一个可选参数调整为必选参数,VBA不允许可选参数排在必选参数之前。
4、有参数的过程,其他任意过程可以随时调用此过程来执行,从而大大简化代码。

VBA入门免费教学群 无忌
39楼
mmice
1.看图 :
  
在上图的工作表中查找红色的“改锥”,并报告其地址,代码如下:

Sub 查找红色的改锥所在单元格地址()
    Application.FindFormat.Clear   '清除以前的查找格式
    Application.FindFormat.Font.Color = 255 '设置查找对象的字体颜色
   '获取查找对象的地址
    MsgBox Range("C:C").Find("改锥", SearchFormat:=True).Address
End Sub

或者
MsgBox Range("C:C").Find("改锥",,,,,,True).Address

复制代码
执行代码会出错?错在哪里?应如何修改代码?
提示:要解决此问题,看看Range.Find的帮助即可,配合上课时的讲的理论,足以解决。
答:类型不匹配,修改如上

2.说说可选参数的用途是什么?
答:可选参数则既
可以对参数赋值也可以不赋值,当未手动为可选参数赋值时,VBA 会调用该参数的默认值。用途在于方便。
3.用什么办法将一个必选参数变成可选参数?
答:通过Optional关键字进行声明。
4.什么情况下适用带参数的过程?它有何优势?
答:现在就知道工作表事件,会写参数……

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap