将解析单元格逗号分隔文本的VBA Sub改造为可返回多行结果的UDF
实现逗号分隔文本拆分的UDF代码
Function myUDF(ByVal inputCell As Range) As Variant ' 仅支持单个单元格作为输入 If inputCell.Cells.Count <> 1 Then myUDF = CVErr(xlErrValue) Exit Function End If Dim inputStr As String inputStr = inputCell.Value ' 处理空值场景 If inputStr = "" Then myUDF = Empty Exit Function End If ' 按逗号拆分字符串并转成纵向数组 Dim arr As Variant arr = VBA.Split(inputStr, ",") myUDF = Application.Transpose(arr) End Function
使用方法
- 按
Alt+F11打开VBA编辑器,右键点击当前工作簿→插入→模块,将上述代码粘贴到模块窗口中 - 保存工作簿为「Excel 启用宏的工作簿(*.xlsm)」格式
- 若使用Excel 365/2021及以上版本,直接在目标起始单元格(如B1)输入公式
=myUDF(A1)即可自动向下溢出填充所有拆分结果 - 若使用更低版本Excel,先选中足够容纳拆分结果的纵向单元格区域,输入公式后按
Ctrl+Shift+Enter完成数组公式输入即可
功能验证
针对你给出的示例:
M89-76,M64-62,M76-80
在B1输入=myUDF(A1)后,会自动在B1、B2、B3三个单元格分别返回三个拆分后的编码,完全符合需求。
内容的提问来源于stack exchange,提问作者user17534812
相关产品推荐
相关产品推荐

