No.1
本节内容有两个重点,一个是数组,一个是公式。
首先要了解一下所谓的数组是什么,公式又代表什么。
![4567e93b7269a1b22f576360f395ebbb.png](https://img-blog.csdnimg.cn/img_convert/4567e93b7269a1b22f576360f395ebbb.png)
Excel中数组是存储于单元格内的数据,以一定的方式表示有一定特征的一组数组。
那么如何把Excel中的单元里的数据当作数组来输入呢?
这个方法有一个快捷方式,即选定一个单元格区域,在“编辑栏”里输入“=”+数据或“=”+公式。
按Shift+Ctrl+Enter组合键。
此时,查看编辑栏里的值会多出一个{}包含的值或公式。
这就是以数组形式保存的数据。
那么,这么着也只能单击某一个单元格,才能判断是否包含一个数组或公式。
本节的内容就是讲如何利用代码来判断这个结果。
此时用到两个属性,如下图:
![6915ba935a51ee5bce4ca3975bc300dd.png](https://img-blog.csdnimg.cn/img_convert/6915ba935a51ee5bce4ca3975bc300dd.png)
No.2
HasArrar和HasFormula都是Range对象的属性。
一个表示是否包含数组,一个表示是否包含公式。
其中的包含是指指定的Range对象。
如下图可直观看到,判断B列和C列。
![94c38bedc16acddd70ba99ee66a5ce67.png](https://img-blog.csdnimg.cn/img_convert/94c38bedc16acddd70ba99ee66a5ce67.png)
至于判断之后有什么作用,那就要对不同的应用场景进行考虑了。
如判断出是一个数组区域,那么就不能对此区域进行不更改,因为作为数组的一部分,更改之后是会出现一些问题。
如果判断出是某一个公式,反而可以进行公式更改。
这些都是根据不同的程序需求来进行。
No.3
代码介绍:
![d91eb9781a3eb8c3807e4012e5a2dca5.png](https://img-blog.csdnimg.cn/img_convert/d91eb9781a3eb8c3807e4012e5a2dca5.png)
自选定区域判断代码:
Private Sub SelectCode()Dim R As RangeSet R = Application.InputBox(prompt:="选择单元格区域", Type:=8)If R.HasFormula = True Then MsgBox R.Address & "包含公式!"Else MsgBox R.Address & "不包含公式!"End IfIf R.HasArray = True Then MsgBox R.Address & "包含数组公式!"End IfEnd Sub
判断包含数组、公式
Private Sub CheckArrarFormula()Dim xR As RangeSet xR = Range("A3:A15")Dim R As RangeFor Each R In xR With R If .Offset(0, 1).HasFormula = True Then .Offset(0, 3).Value = "True" Else .Offset(0, 3).Value = "False" End If If .Offset(0, 2).HasArray = True Then .Offset(0, 4).Value = "True" Else .Offset(0, 4).Value = "False" End If End WithNext REnd Sub
上面例子要配合相应表进行,不然毫无效果。
本来这个属性在初级学习来说,有一定的难度,因为在初级来说数组和公式的应用是有点困难的,但是深入学习之后,会有更加理想的提高。
欢迎关注、收藏
---END---