修法布施得聪明智慧 , 多分享让生活更美好 。 上回分享了《Excel文本索引自定义函数》 , TEXTSY可以把单元格区域值连接起来 。 如果数组首行按每行数据降序排列连接起来 , 如下图 , 将怎样编写自定义函数?0Excel文本索引自界说函数
文章插图
文章插图
需要这些哦
Microsoft Office Excel 2007
Excel VBA
一、函数HDOCONCATENATE1功能:在表格或数值数组 (数组:用于成立可生当作多个成果或可对在行和列中摆列的一组参数进交运算的单个公式 。 数组区域共用一个公式;数组常量是用作参数的一组常量 。 )的首行 , 并在表格或数组中指定行的值降序返回顾行所稀有据对应摆列构成文本串 。
2语法:
HDOCONCATENATE(table_array,Row_index_num)
Table_array 为需要在此中查找数据的数据表 。 利用对区域或区域名称的引用 。
· Table_array 的第一行的数值可觉得文本、数字或逻辑值 。
· Table_array 的第二行起的数值为数字 。
Row_index_num 为 table_array 中待返回的匹配值的行序号 。 Row_index_num为 1 时 , 返回 table_array 第一行的数值 , row_index_num 为 2 时 , 返回 table_array 第二行的数值 , 以此类推 。
二、函数HDOCONCATENATE编制1起首打开Microsoft Office Excel 2007 , 新建文档并保留文件名《Excel数组首行按每行数据降序摆列自界说函数 .xlsm》(演示文件 , 下面代码复制到能运行宏的工作簿都可以)如图 。
文章插图
2然后按下快捷键ALT+F11打开VBA(宏)编纂界面 , 然后点菜单栏【插入】下拉中列表中点【模块(M)】如图 。
文章插图
3然后插入了一个模块1 , 在代码框中复制如下代码:
Option Base 1
Function HDOCONCATENATE(mm, n As Long) As String
'2020-8-8 22:48:26
Dim i As Long, j As Long
Dim mb, mc1, mcn, mmk
If IsArray(mm) Then
mb = mm
Else
On Error Resume Next
If mm.Rows.Count > 1 And mm.Columns.Count > 1 Then
mb = mm
Else
HDOCONCATENATE = "#VALUE!"
Exit Function
If
If Err.Number <> 0 Then
HDOCONCATENATE = "#VALUE!"
Exit Function
If
Err.Clear
If
If n < 1 Or n > UBound(mb, 1) Then
HDOCONCATENATE = "#VALUE!"
Else
mc1 = Application.Index(mb, 1, 0)
mcn = Application.Index(mb, n, 0)
Erase mb
mmk = Split(SZSX(mcn), ",")
With CreateObject("scripting.dictionary")
For i = 1 To UBound(mc1)
推荐阅读
- excel文件未保存怎么办
- Excel 鼠标悬停时如何取消显示图表元素名称
- Excel中的文本框边框与单元格线不对齐该怎么办
- Excel中如何插入图片
- Excel中如何旋转文字
- Excel无法使用填充柄功能,咋办
- Excel中如何将横排文字转换成竖排文字
- Excel中如何在很多数据中快速找到想要的数据
- Excel中如何将一列数据拆分成两列
- Excel中如何批量设置行高