VBA – 结合string来创build一个公式

我试图在vba中创build一个公式,要求用户点击一个单元格,然后在公式中使用该单元格的地址。 有些人可能会嘲笑我的做法,就是将公式分解成string,然后一旦知道用户点击的单元格的地址,就把它连接回最终的公式string。 出于某种原因,尽pipe事实上debugging打印显示正确的公式,我得到activecell.value行上的错误。 任何帮助,这是非常感激,见下文:

Dim p1, p2, p3, p4, p5, p6, p7 As String p1 = "=IF(ISERROR(MID(" p2 = ",FIND(OP-," p3 = "),10))," p4 = ",(MID(" p5 = ",FIND(OP-," p6 = "),10)))" Dim cellClick As Range Set cellClick = Application.Selection Set cellClick = Application.InputBox("Select Range :", xTitleId, cellClick.Address, Type:=8) Dim vz, finVz As String vz = cellClick.Address finVz = p1 & vz & p2 & vz & p3 & vz & p4 & vz & p5 & vz & p6 ActiveCell.Value = finVz 

=IF(ISERROR(MID($J$11,FIND(OP-,$J$11),10)),$J$11,(MID($J$11,FIND(OP-,$J$11),10)))是输出。

它是"" OP-

也需要是ActiveCell.Formula,正如@Nathan_Sav所述。

改成:

 Dim p1 As String, p2 As String, p3 As String Dim p4 As String, p5 As String, p6 As String, p7 As String p1 = "=IF(ISERROR(MID(" p2 = ",FIND(""OP-""," p3 = "),10))," p4 = ",(MID(" p5 = ",FIND(""OP-""," p6 = "),10)))" Dim cellClick As Range Set cellClick = Application.Selection Set cellClick = Application.InputBox("Select Range :", xTitleId, cellClick.Address, Type:=8) Dim vz, finVz As String vz = cellClick.Address finVz = p1 & vz & p2 & vz & p3 & vz & p4 & vz & p5 & vz & p6 ActiveCell.Formula = finVz