当前所在位置: 首页 > 儿童教育 > 正文

excel二十多年前的XLM宏函数还有用吗

2023-01-26 餐饮美食网 【 字体:

是XLM,不是流行的XML!

XLM宏函数非常“古老”,据说是Excel 5之前用于编程控制Excel的“语言”,数百个XLM宏函数提供了Excel的几乎全部功能。

但是,自从在Excel 5中引入更易学习且更强大的VBA后,XLM宏函数被VBA所取代,成为编程控制Excel的主要语言。

然而,XLM宏函数仍然能够在迄今为止的所有Excel版本中使用,并且有些功能似乎还必须要借助于XLM宏函数。由于XLM宏函数出现在Excel 5之前,因此有时也称之为Excel 4 XLM宏函数。

下面举几个使用XLM宏函数的例子。

在命名公式中使用XLM宏函数

在将公式定义为名称时,可以在公式中使用XLM函数,这可以实现通常要使用VBA才能实现的功能。注意,通常的工作表公式中不能使用XLM函数。

示例1:列出指定目录下的文件

在工作簿中创建命名公式。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:FileList

引用位置:=FILES(Sheet1!$A$1)

其中,FILES是一个XLM宏函数,可以指定一个带有文件说明的目录路径作为参数,用于返回该目录下符合文件说明的文件名组成的数组。

在Sheet1的单元格A1中,输入目录路径和文件说明,在任意列(本例中为列C),从第1行开始,输入公式:

=INDEX(FileList,ROW())

然后下拉该单元格至公式值返回#REF!,此时表明文件夹中的文件已找完,如下图1所示。

图1

现在,修改工作表Sheet1单元格A1中的值代表的文件夹,列C中的数据自动更新。

示例2:读取单元格背景色

在工作簿中创建命名公式。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:CellColor

引用位置:=GET.CELL(63,Sheet2!A1)+NOW()*0

其中,GET.CELL是一个XLM宏函数,可以获取关于单元格的各种信息,其中包括单元格背景填充色的索引值。

注意,在“引用位置”框所输入的公式中,由于是相对当前单元格左侧的单元格,因此在定义名称时,选取工作表Sheet2单元格B1。公式中的NOW()*0确保Excel每次重新计算时该名称公式也会重新计算。

获取工作表Sheet2的列A中单元格背景色的公式如图2所示。

图2

若数值单元格带有背景色,现在要汇总某背景色所在的单元格中的值,例如下图3所示的工作表,要计算橙色背景单元格的数值之和。

图3

在列B中使用公式:=CellColor获取列A中相应单元格的背景色索引值,在单元格E1中输入想要求和的单元格背景色索引值,在单元格E3中输入公式:

=SUMIF(B1:B8,”=” & E1,A1:A8)

示例3:获取工作表名

3-1 在工作簿中创建命名公式,以获取工作簿中所有的工作表名。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:AllSheets

引用位置:=GET.WORKBOOK(1+0*NOW())

该名称将获取工作簿中所有工作表名,即其值为工作簿中所有工作表名组成的数组。如下图4所示,在工作表单元格B1中输入公式:

=INDEX(AllSheets,ROW())

下拉至出现#REF!值,表明已列出全部的工作表名。

图4

3-2 在工作簿中创建命名公式,以获取当前单元格所在的工作表名。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:ThisSheet

引用位置:=GET.CELL(32+0*NOW(),INDIRECT(GetRC,FALSE))

注意,在“引用位置”公式中的INDIRECT(GetRC,FALSE)提取使用该名称的单元格。

接着,定义名称:GetRC

引用位置:=SUBSTITUTE(REFTEXT(!$A$1),1,””)

确定正在使用的行和列的字母。

GET.CELL(32,…)获取包含使用上面的INDIRECT提取的单元格所在的工作表的名称,包含有工作簿名。例如,在工作簿ExcelReveal07.xlsm工作簿的工作表Sheet5任一单元格中,输入公式:=ThisSheet,其结果是:[ExcelReveal07.xlsm]Sheet5,如图5所示。

图5

3-3 在工作簿中创建命名公式,以获取当前工作表之前(即左侧)的工作表名。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:PreviousSheet

引用位置:=INDEX(AllSheets,MATCH(ThisSheet,AllSheets,0)-1)

其中,MATCH函数获取当前工作表的索引值,减1得到当前工作表左侧工作表的索引值。然后,INDEX函数获取该工作表的名称。如下图6所示。

图6

3-4 在工作簿中创建命名公式,以获取当前工作表之后(即右侧)的工作表名。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:NextSheet

引用位置:=INDEX(AllSheets,MATCH(ThisSheet,AllSheets,0)+1)

3-5 下面的公式获取当前工作表之前的工作表单元格A1中的值:

=INDIRECT(“‘” & PreviousSheet& “‘!” & CELL(“address”,A1))

下面的公式获取当前工作表之后的工作表单元格A1中的值:

=INDIRECT(“‘” & NextSheet& “‘!” & CELL(“address”,A1))

示例4:给命名公式传递参数

在工作簿中创建命名公式。

单击“公式”选项卡“定义名称”命令,在“新建名称”对话框中输入以下内容:

名称:Myref

引用位置:

=MID(GET.CELL(6,INDIRECT(GetRC,FALSE)),FIND(“ROW(“,GET.CELL(6,INDIRECT(GetRC,FALSE)))+4,FIND(“)”,GET.CELL(6,INDIRECT(GetRC,FALSE)))-FIND(“ROW(“,GET.CELL(6,INDIRECT(GetRC,FALSE)))-4)

Myref在公式中查找“ROW(”并接受找到的位置与第一个闭括号之间的全部文本作为有效的单元格引用,即评估当前单元格中的公式字符串,提取一个单元格地址。

注意,在公式中使用了上文创建的名称GetRC。

下面是一些可能与命名公式Myref结合使用的一些示例。定义名称:

名称:IsFormula

引用位置:=GET.CELL(48,INDIRECT(Myref))+0*NOW()

名称:CellColor

引用位置:=GET.CELL(63,INDIRECT(Myref))+0*NOW()

名称:RowIsHidden

引用位置:=IF(GET.CELL(17,INDIRECT(Myref))=0,TRUE,FALSE)+0*NOW()

名称:RowHeight

引用位置:=GET.CELL(17,INDIRECT(Myref))+0*NOW()

在工作表中使用:

=IF(ROW(B2),CellColor)

显示单元格B2的背景色的索引值。

=IF(ROW(B2),RowHeight)

显示单元格B2所在行的行高。

在VBA中使用XLM宏函数

示例:定位图表中的形状

如下图7所示,在工作表Sheet7中,需要在图表区中将箭头从绘图区的左上角指向第3个柱状顶部中间位置。

图7

代码如下:

说明:

使用XLM的GET.CHART.ITEM函数来获取图表中柱状顶部中间的位置。该函数的语法:

CHART.ITEM(x_y_index, point_index, item_text)

其中:

参数x_y_index的值为1时返回X坐标,为2时返回Y坐标。

参数point_index取决于当前激活的对象,其值为一个从1到8的数字,用于表示对象中的某个特定顶点。例如,2表示矩形对象(如柱状图中的列)顶部的中间位置。

参数item_text指定要定位到的对象。例如Plot表示绘图区域,S2P4表示图表中第2数据系列的第4个数据点。

使用GET.CHART.ITEM函数前,必须先激活图表。

阅读全文
相关推荐

如何自制蛋挞

如何自制蛋挞
1、倒入低筋面、黄油和水,揉成面团状,藏一小时后取出,抹上黄油卷起,包上保鲜膜冷藏半小时。2、取出,将面团切成一厘米的面团,放入模具内,用力按压,中间稍薄,外缘要比模具高,将蛋挞液倒入蛋挞皮中,放入烤箱里烤30分钟即可。

肉火烧面怎么和面

肉火烧面怎么和面
1、首先用温水把酵母融开,加入面粉,用手把面粉揉成非常软的面团,可以放一点熬好的猪油在面团里面。2、然后放在温暖的地方,盖上保鲜膜发酵至2倍大,发好的面团用手插入不回缩,就说明面团发酵好了。

奶茶几分糖好喝

奶茶几分糖好喝
1、不同的人对奶茶的口感要求是不一样的,一般来说,奶茶有三分糖、五分糖、七分糖三种不同的口味。2、女生一般都喜欢喝甜一点的,而男生则喜欢喝不那么甜的,七分糖的奶茶最好喝。

过桥米线是哪里的?

过桥米线是哪里的?
过桥米线是来自云南省滇南地区的一种有名特色小吃。过桥米线最早是在清朝就已经出现,距离现在至少有一百多年的历史啦!起源于建水县东城外锁龙桥西侧的鸡市街头处,有建水的特产草芽、地椒作配料,风味独特而远近闻名。深受广大美食爱好者的喜欢,不少人为此专门长途跋涉,只为尝

面霜和乳液的区别

面霜和乳液的区别
面霜和乳液的区别,相较而言乳液的水分含量要比面霜高,乳液质地要轻薄一些,乳液主要作用是保湿,滋润可以隔离外界干燥的气候,面霜既可保湿,又可美白,还能抗衰老,乳液的吸收快一些,而面霜吸收比较慢一些,因为液体的吸收速度都比较快。

怎么摘隐形眼镜

怎么摘隐形眼镜
在摘隐形眼镜之前,先用洗手液将手清洗干净,以免将细菌带入眼睛内,对着镜子,用右手中指轻拉眼睛下眼睑,左手中指轻拉眼睛上眼睑,让黑色眼球暴露在空气中,用右手食指和拇指轻触镜片的两边缘部分,向中间推使镜片拱起,再用两手指轻轻捏出镜片即可。

粉饼和散粉的区别

粉饼和散粉的区别
粉饼是呈压缩固体状态,多呈圆形或者方形,散粉则是细腻的粉末状,粉饼遮瑕力会比较强一些,可以湿用做粉底,或者用来补妆,而散粉则是定妆的效果,粉饼通常用在底妆的第一步,而散粉通常用在底妆最后一步。

冷烫和热烫的区别

冷烫和热烫的区别
冷烫和热烫的区别:冷烫对头发的要求是要在保温状态下才能给卷有个好的效果,而热烫是在干和湿的情况下都行,热烫烫出来的头发比较自然明显而有弹力,冷烫的头发风干后基本看不出来,并且发质会有点干。

高品质香水如何鉴别?用三步就可以解决

高品质香水如何鉴别?用三步就可以解决
1、看色泽以天然香料调制而成的高级香水,都有它本来的颜色,且大都是琥珀色或褐色,看起来很像宝石,比如,从茉莉、玫瑰或水仙等天然鲜花中所萃取的精油都呈黄色、褐白或绿褐色;此外,香水中所添加的魅惑香气物性香料也是褐色,苔类中的橡树苔是绿色,从树根或树根脂类中萃取的

如何去除黑眼圈

如何去除黑眼圈
去除黑眼圈首先可以用热毛巾敷眼,然后再用冷毛巾敷,十分钟就能让黑眼圈淡化的不那么严重,其次将去壳后的鸡蛋用无菌纱布包裹住,敷于眼部轻轻转动,可以急救去除黑眼圈,另外抹完眼霜后,用双手顺时针按摩,可以促进血液循环消除黑眼圈。
本文Tag