ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_4.6 将名称转换为对象或者值

网友投稿 80 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第4章,第6节,陈锡卢、李应钦著。

4.6 将名称转换为对象或者值:Apolicofion.Ouolugte

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_4.6 将名称转换为对象或者值

无言:皮蛋,昨天的思考问题怎么样了?今天可不会等你的哦。下面我们该学其他的了。 皮蛋:还行吧,那就继续吧,我会补的。

无言:在Excel函数中存在着一个Evaluate宏表函数,该函数的作用就将文字表达式转换成 计算结果值;在VBA中也存在着这么一个,但它是方法而不是函数——Application.Evaluate,

其作用及语法如下。所谓使用Microsoft Excel 命名约定的对象名称,可以分为如下几种情况。

(1)A1 格式引用:可以通过A1 格式表示法引用单个单元格,所有引用均视为绝对引用 区域。在引用中可以使用区域、交集和联合运算符(分别为冒号、空格和逗号分隔)。

(2)定义的名称:可用宏语言指定任何名称和外部引用(使用!运算符引用另一工作簿中 的单元格或已定义名称)。例如,Evaluate("[BOOK1.XLS]Sheet1!A1")。

(3)图表对象:可以指定任何图表对象名称(如 Legend、Plot Area 或 Series 1),以访问 该对象的属性和方法。例如,Charts("Chart1").Evaluate("Legend").Font.Name 返回图例中所用字 体的名称。

? 皮蛋:这个只有一个参数,但是说明好乱啊,怎么约定的对象名称?

无言:可通过单元格的值、自定义名称或者文本串获取计算结果、转化为对象或引用图表 对象等作用。

Application.Evaluate 方法虽然只有Name 参数,但是其用法也是千变万化的。依据帮助, Evaluate 可以将 Name 参数转化为对象或者值;但是在实际运用时,更多用于将字符表达式转 换为 Excel常量数组、引用地址的值、文字四则运算表达式的值或设置属性等。先看下代码4-13 示例过程。

代码4-13示例过程声明一个Tem 文本变量并赋值不同的文本内容。

(1)MsgBox TypeName(Application.Evaluate(Tem):将 Tem赋值为 A1文本内容,运用 Evaluate(Tem)转换后用TypeName 函数,提示Evaluate 方法将Al 文本内容转换为 Range 对象, 在通过Msgbox 函数获取当前工作表A1单元格的值。

(2)ThisWorkbook.Worksheets(1).Evaluate(Tem).Font.Size =Int(Rnd*29)+10: 则 是 将Evaluate(Tem)转换为Rang对象后,设置工作簿第1个工作表A1 单元格的字号;并通过 Msgbox 函数读取 A1 单元格字号。

(3)Tem="{10,20,30;40,50,60}": 和在 Excel 工作表常量数组的写法相同,将文本类型的 常数数组转换为 Excel公式中的常量数组,因为 VBA不支持直接输入这样的常量数组,所以 通过定义为文本字符,再由 Evaluate 转换为一个变体数据类型,这样就可以获取该文本常量数 组中的指定位置数据; Evaluate(Tem)(1,1)语句为获取Tem 变量转换后的变体中的指定序列位 置的数据。

(4)Tem=" [工作簿2.Xlsx]Sheet1!A1": 直接将变量赋值为一个指定打开的工作簿的 Sheet1 工作表 A1 单元格,再通过转换语句获取指定工作簿的单元格的值。

无言:该方法最常用于将Excel中的常量数组转换为VBA 数组。

? 皮蛋:原来是这样!但是文本转换为对象时,感觉对象赋值还是用Set比较直观。 无言:是,但如果是文本串的话,就必需使用Evaluate进行转换。

上面运用Application.Evaluate 方法将A1 单元格的引用方式转换为具体位置引用,这个论 证是通过TypeNam 函数得到的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_代码规范
下一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_1.1 查询编辑数据的ADO技术
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×