c# - Excel 单元格公式正在使用工作表名称更新。从 ASP.NET 导出

标签 c# excel excel-formula export export-to-excel

=CONCATENATE( "Level3!$B",  MATCH($B6,Level31!$A:$A,0),":$B", COUNTIF(Level31!$A:$A,$B6) + MATCH($B6,Level31!$A:$A,0)-1)

我在 excel 单元格中有这个公式。我正在通过 C# 代码复制粘贴到下面的所有行中。到这里都很好。

问题在于,在此公式中,Level3 是重命名为 Level31 的工作表名称。这种变化在三个地方自动反射(reflect)在公式中,而不是首先..为什么 在单元格中手动更新公式后,它工作正常。

第二个问题在下一个单元格 实现另一个公式的地方。当我打开工作表时,它显示 #N/A 但是当我点击单元格并按下回车键时。它开始工作..

有人可以指导我吗?

最佳答案

如果您将第一个位置称为 =CONCATENATE( "Level3!$B", ,该值将存储为字符串,不会自动从 3 调整到 31。试试这个公式 =CONCATENATE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"!$B", MATCH($B6,Level31!$A: $A,0),":$B", COUNTIF(Level31!$A:$A,$B6) + MATCH($B6,Level31!$A:$A,0)-1) 公式 MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255) 使您的第一个位置也是动态的。

关于c# - Excel 单元格公式正在使用工作表名称更新。从 ASP.NET 导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46189935/

相关文章:

excel - 如何将转义击键发送到 Excel VBA

c# - 关闭文件后删除 .xlsx 或 .pdf

vba - 如果在该行中找不到字符 ","或 Chr(44),则删除整行。对所有行重复

c# - 以编程方式解锁 applicationHost.config 中的部分

c# - 使用 LINQ 从字符串列表中提取整数

c# - 不能将类型字符串隐式转换为 char

c# - 是否可以覆盖隐藏的方法?

c# - 刷新数据透视表 EPPlus

excel - 如何使用公式来计算数据列表中的唯一值?

excel - 如何在 SUMPRODUCT() 中获取 FORMULATEXT() 的长度?