掌握Excel工作表引用技巧:VBA代码与INDIRECT函数的正确使用 点击使用AI助手 了解更多

发布于 2024-10-09 liusiyang 125 编辑

提问贴: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

原文链接:https://bbs.wps.cn/topic/22364

上一篇: WPS从入门到熟练的快速指南
下一篇: WPS文字邮件合并功能详解:高效整合文档数据
相关文章