我收到运行时错误' 1004'
应用程序定义或对象定义的错误
当我尝试运行以下代码时
Sub Parenthese_Negative()
'
' Parenthese_Negative Macro
'
'
If Left(ActiveCell.Formula, 3) = "=-(" Then
ActiveCell.Formula = Replace(ActiveCell.Formula, "=-(", "=")
'ActiveCell.Formula = Right(ActiveCell.Formula, Len(ActiveCell.Formula) - 1)
ActiveCell.Formula = Left(ActiveCell.Formula, Len(ActiveCell.Formula) - 1)
Else: ActiveCell.Formula = Replace(ActiveCell.Formula, "=", "=-(") & ")"
End If
Application.Run "mDOM.DMOnEntry"
End Sub
我只是想编写一个宏来检查前三个字符是否为= - (如果是,则删除它们并使它只是=
这样做将允许此宏在之间来回切换,例如= a1 * b1和= - (a1 * b1)。其他的工作原理是让它从= a1 * b1变为= - (a1 * b1),但是if将它带回到= a1 * b1则让我适合。
答案 0 :(得分:2)
我最好的猜测是Excel抛出一个错误,因为你分两步处理公式,第一步留下一个尾随的关闭parens。也许如果你在一次操作中替换公式,它就不会有这个问题。下面的示例方法,我还没有测试过它。
Sub Parenthese_Negative()
'
' Parenthese_Negative Macro
'
'
If Left(ActiveCell.Formula, 3) = "=-(" Then
ActiveCell.Formula = "=" & Left(Right(ActiveCell.Formula, Len(ActiveCell.Formula) - 3), Len(ActiveCell.Formula) - 4)
Else: ActiveCell.Formula = Replace(ActiveCell.Formula, "=", "=-(") & ")"
End If
Application.Run "mDOM.DMOnEntry"
End Sub