vba - Excel函数限制8192个字符

标签 vba excel excel-formula

我在一个单元格中有超过 10,000 个字符的公式。我无法引用多个单元格,因为要求限制了它。

示例:

=IF(NOT(ISERROR(SEARCH(String1,IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))),SUBSTITUTE(IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),""),String1,$G2),IF(NOT(ISERROR(SEARCH(String2,IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))),SUBSTITUTE(IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),""),String2,$F2), IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))

我不确定这个公式是否有帮助。但该公式的示例部分。

在 Excel 中获得命名范围(定义名称),公式可以根据该范围的名称调用单元格。

有类似的公式/函数吗?因为我的函数由于嵌套公式而很长。

我可以用我自己的角色替换“SUBSTITUTE”吗?像前一样。 SUBTE

最佳答案

正如之前所建议的,最好的解决方案几乎肯定是编写一个简洁的 VBA 函数来为您完成所有操作。

但是,正如您明确要求的那样。下面是一个函数的代码,只是一个SUBSTITITE,但长度较短。我看不到您在哪里使用了 instance_num 参数,因此我没有构建它。

您需要将以下代码添加到 VBA 编辑器中的新模块中,然后只需编写 SU() 即可在工作表上使用 SUBSTITUTE() 函数>

Function SU(txt As String, old_text As String, new_text As String) As String
    SU = Application.WorksheetFunction.Substitute(txt, old_text, new_text)
End Function

关于vba - Excel函数限制8192个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42094960/

相关文章:

matlab - 是否有可以像 VBA 的 IIF 一样内联放置的 Matlab 条件 IF 运算符

excel - 如何更改 Power Query 中的参数而不将值转换为公式?

vba - 在 Excel VBA 中,根据列数据创建新行

vba - 如何分隔列中的所有字符串并将每个子字符串粘贴到其他列中? (通过 VBA)

Excel - 选择不同单元格时强制重新计算

Excel 显示名称两次

mysql - 如何将行转换为重复的基于列的数据?

c# - 在 EPPlus C# 中展开表

php - 从 php 运行 excel 公式

Excel FILTER返回数组非零列