【回复贴】 请教怎么模糊匹配表格中不同名称工作表的sheet,然后把匹配到sheet的同一单元格求和

懒得批爆
懒得批爆

创作者俱乐部成员

提问贴:https://bbs.wps.cn/topic/22355

通过查询众多资料,众多AI,最终得到结论

工作表名在公式中是一个明确的引用,必须明确指出要引用哪个工作表。通配符通常用于在搜索、筛选或自定义格式等功能中,用于匹配符合特定模式的文本或数值,但在工作表名的引用中并不适用。

如果你想在多个工作表之间进行引用或计算,可能需要使用其他方法,例如使用VBA编程或者创建一个包含所有工作表名的列表,然后通过循环或查找函数来引用这些工作表。

接着通过AI生成一个又一个VBA代码,通过不断的测试,得到一段适用的代码(不会写代码,还是会用的)

Function Active_Work_Sheet_Name()
Dim wbk As Workbook
Set wbk = ActiveWorkbook
Dim result As Variant
Dim j As Variant
j = wbk.Sheets.Count - 1
ReDim result(j, 0)
Dim k As Variant
For k = 0 To j
result(k, 0) = wbk.Sheets(k + 1).Name
Next k
Active_Work_Sheet_Name = result
End Function

接着创建了一个xlsm文件,生成以A到Z为名的26个工作表,各个工作表中填入一些数字,需要引用各工作表的C5单元格。

起初准备使用INDIRECT函数直接引用自定义函数,最终失败,

INDIRECT 函数不支持数组作为直接参数。

不能使用 INDIRECT 函数来引用一个数组范围并返回一个数组结果。

INDIRECT 函数通常用于将文本字符串转换为单个单元格引用。

INDIRECT 函数的设计上只能处理单个单元格引用或单个范围引用,而不是数组。

于是只好先使用="'"&Active_Work_Sheet_Name()&"'!C5"来获取公式名,再用INDIREC函数分别获取引用单元格的返回计算结果。

由于金山文档暂时不支持VBA代码,所以将测试文件放在某网盘,请移步至:

👋

链接: https://pan.baidu.com/s/1XTx0SMdLc2hh84GD9Dp8fg?pwd=6699 提取码: 6699

四川省
浏览 600
1
10
分享
10 +1
6
1 +1
全部评论 6
 
方盛
方盛

创作者俱乐部成员

助力成功
· 湖北省
回复
 
AI看热闹
跟着大佬学
· 四川省
回复
 
HC.旋
跟着大佬学
· 江苏省
1
回复
懒得批爆
懒得批爆

创作者俱乐部成员

别,只是网上搜搜搜,然后线下测测测,最后在社区贴贴贴。 主要是自身不懂代码,看着代码头疼(拉丁字母仅认识字母,合在一起不知道啥意思)
· 四川省
1
回复
 
方盛
方盛

创作者俱乐部成员

点赞学习
· 湖北省
回复
 
zha7090
zha7090

创作者俱乐部成员

赞一个先
· 广东省
回复