excel - 基于Excel公式的VBA提取中间名
问题描述
我正在使用 Excel 公式来提取学生的中间名。
下面的公式提供了正确的输出。当我尝试使用 VBA 获得相同的输出时,它显示错误
无法获取搜索属性
=IF(LEN(I3)-LEN(SUBSTITUTE(I3,"-",""))=2,MID(I3, SEARCH("-",I3) + 1, SEARCH("-",I3,SEARCH("-",I3)+1) - SEARCH("-",I3) - 1),MID(I3,FIND("-",I3)+1,99))
'I' 列中的名称 - Gupta-Sarika-Ashok,我使用上面的公式得到输出为 'Sarika'。使用 VBA 时并非如此
ws.Range("J2").Formula = WorksheetFunction.If(Len(I3) - len(WorksheetFunction.Substitute(I3, "-", "")) = 2, Mid(I3, WorksheetFunction.Search("-", I3) + 1, WorksheetFunction.Search("-", I3, WorksheetFunction.Search("-", I3) + 1) - WorksheetFunction.Search("-", I3) - 1), VBA.Mid(I3, WorksheetFunction.Find("-", I3) + 1, 99))
解决方案
尝试这个:
ws.Range("J2").Formula = "=IF(LEN(I3)-LEN(SUBSTITUTE(I3,""-"",""""))=2,MID(I3, SEARCH(""-"",I3) + 1, SEARCH(""-"",I3,SEARCH(""-"",I3)+1) - SEARCH(""-"",I3) - 1),MID(I3,FIND(""-"",I3)+1,99))"
推荐阅读
- angular - 量角器在 Angular 12 中是否已弃用?
- java - 能够捕获用户输入字符串的数字和符号
- android - 在android中使用所有文件访问权限有多好?
- flutter - 如何在 Flutter 中的文本末尾添加图标按钮?
- flutter - 没有为类“BasicMessageChannel”定义方法“setMockMessageHandler”
' - apache-spark - Spark 应用程序在接受状态很长时间后失败。日志说 Socket 超时异常
- c# - 每当我尝试运行时,ProGrids 错误消息都会冻结 Unity 应用程序
- python - 在数据砖(python)中安装后如何获取azure blob的最后修改日期?
- c++ - 使用 ctrl + z 结束读取 C++ 中的字符数组
- reactjs - 条件逻辑反应原生“文本字符串必须在
零件。”