excel vba 计算代码不计算合并单元格中的某些公式
excel vba calculate code doesn't calculate some of the formulas in merged cells
我在不同的 sheet 中使用以下公式计算公式:
Sub Calculate_Formulas_otherSheets()
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Name Like "*" & strSearch & "_A" Then
Sheets(Sheet.Name).Calculate
End If
Next
For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Name Like "*" & strSearch & "_B" Then
Sheets(Sheet.Name).Calculate
End If
Next
End Sub
在这些 sheet 中,其中三个公式位于合并的单元格中。
AY3
中的公式1
=RIGHT(CELL("filename");LEN(CELL("filename"))-FIND("]";CELL("filename")))
AZ3
中的公式2
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-4);2);"")
BA3
中的公式3
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-3);1);"")
如果我手动计算它们,一切都会完美无缺。但是当我通过上面的代码进行操作时,它们不会被计算; sheet 中的其他公式确实得到了计算,除了这三个。
出了什么问题?
顺便说一下,自动计算是关闭的。
更新
实际上它以错误的方式更新:文件名公式获取 sheet 的 sheet 名称,其中此 vba 代码被保存为宏按钮。如何解决?
作为documented,CELL
函数的第二个参数,reference
,控制你想要的信息的单元格,并且:
If omitted, the information ... is returned for the last cell that was changed.
您省略了第二个参数,显然最后更改的单元格恰好位于错误的工作簿中。
在第二个参数中提供正确的单元格。
我在不同的 sheet 中使用以下公式计算公式:
Sub Calculate_Formulas_otherSheets()
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Name Like "*" & strSearch & "_A" Then
Sheets(Sheet.Name).Calculate
End If
Next
For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Name Like "*" & strSearch & "_B" Then
Sheets(Sheet.Name).Calculate
End If
Next
End Sub
在这些 sheet 中,其中三个公式位于合并的单元格中。
AY3
=RIGHT(CELL("filename");LEN(CELL("filename"))-FIND("]";CELL("filename")))
AZ3
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-4);2);"")
BA3
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-3);1);"")
如果我手动计算它们,一切都会完美无缺。但是当我通过上面的代码进行操作时,它们不会被计算; sheet 中的其他公式确实得到了计算,除了这三个。
出了什么问题?
顺便说一下,自动计算是关闭的。
更新
实际上它以错误的方式更新:文件名公式获取 sheet 的 sheet 名称,其中此 vba 代码被保存为宏按钮。如何解决?
作为documented,CELL
函数的第二个参数,reference
,控制你想要的信息的单元格,并且:
If omitted, the information ... is returned for the last cell that was changed.
您省略了第二个参数,显然最后更改的单元格恰好位于错误的工作簿中。
在第二个参数中提供正确的单元格。