Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3158|回复: 5

[已解决]求助, 各位每人给一个关于set 在VBA中用的列子

[复制链接]
发表于 2011-12-28 10:59 | 显示全部楼层 |阅读模式
5学分
各位给一个关于set 在VBA中用的列子,关于set 在VBA使用  
我 只知道约定俗成的一个set  在字典里的用法   还有一个 就是set   d  = nothing
求其他用法, 作个说明更好

最佳答案
2011-12-28 10:59
本帖最后由 吕?布 于 2011-12-28 11:39 编辑

Sub tt()
    ' 对象变量赋值用Set
    Dim sf As Object
    Set sf = New StdFont    ' Set常与New组合使用
    Set sf = Nothing        ' 释放对象

    ' 普通变量赋值用Let
    Dim i As Integer
    Let i = 1   ' Let有时可以省略
End Su

最佳答案

查看完整内容

Sub tt() ' 对象变量赋值用Set Dim sf As Object Set sf = New StdFont ' Set常与New组合使用 Set sf = Nothing ' 释放对象 ' 普通变量赋值用Let Dim i As Integer Let i = 1 ' Let有时可以省略 End Su
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-12-28 10:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 吕?布 于 2011-12-28 11:39 编辑

Sub tt()
    ' 对象变量赋值用Set
    Dim sf As Object
    Set sf = New StdFont    ' Set常与New组合使用
    Set sf = Nothing        ' 释放对象

    ' 普通变量赋值用Let
    Dim i As Integer
    Let i = 1   ' Let有时可以省略
End Su

评分

参与人数 1 +1 收起 理由
CCTV20092009 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2011-12-28 11:08 | 显示全部楼层
set 一般针对的是对象操作,比如赋值 set rng=range("a1") 把A1单元格对象赋给rng对象变量。这里不用set 的话,默认是let,即let  rng=range("a1")  即把A1单元格的值赋给变量rng。其他同理

评分

参与人数 1 +1 收起 理由
CCTV20092009 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2011-12-28 12:05 | 显示全部楼层
本帖最后由 adders 于 2011-12-27 23:10 编辑

吕布说明得很好,我再形象说明一下:

当你Dim x AS y的时候,这个AS后面的东西如果是Object(物件,对象),那么接下来第一次引用的时候就要用Set x = ...; 如果AS后面的东西是赋予x值属性时(如Integer, long, double, boolean, string, variant) 的时候,接下来引用时,就不用Set,直接就是x = ...

Set x = Nothing是针对于当X被赋予成Object后,运行完程序后,为清空内存的保全做法(大部分情况下,即使你在程序结束前不加这句,x值也会清空,但有时候会有内存未清理情况,所以Set x = object后Set x = Nothing是一个良好的编程习惯.)

比如,Workbook, Worksheet, Range这些都是Object, 而Workbook.Name, Range.Value这些就是值,体会一下以下实例:

Dim X as Worksheet, Y as Range      '这些是Object
Set X = ActiveSheet
Set Y = X.Range("A1:D5")

Dim A as String, B as String        '这些是值
A = ActiveSheet.Name
B = ActiveCell.Value



评分

参与人数 1 +1 收起 理由
CCTV20092009 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-12-28 12:24 | 显示全部楼层
本帖最后由 CCTV20092009 于 2011-12-28 12:27 编辑

Set r1 = Sheet1.Range("a10:a1").Find(Range("A2"), , , xlWhole)
  MSGBOX   R1
怎么样才能把R1他放进数组  arr


祝福楼上和楼下的朋友们元旦快乐,2012  《从此出发》

点评

arr=r1  发表于 2011-12-28 16:09
回复

使用道具 举报

发表于 2011-12-28 14:47 | 显示全部楼层
学习!学习!沾点光!哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-4 04:28 , Processed in 0.643398 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表