复制单元格中的公式

时间:2021-05-31 11:53:16

标签: excel vba excel-formula

我是这个网站的新手,也是编程领域的新手。我希望在这里的所有这些专家中都能被接受。

这是我的第一个问题:

在一张工作表中,我引用了另一张工作表上的公式(在单元格 K2 中)。但是,如果在第一个工作表中删除整行,则第二个工作表上的公式会给出 #REF!。

因此,我在另一个单元格(在单元格 K4 中)输入了公式的文本(没有“=”符号)。我想通过将K4中的文本复制并粘贴到K2中来恢复K2中的公式。

此代码不起作用,它在行 Sheets("StdLine").Range("K2").Formula = stdformula

上返回“运行时错误 1004:应用程序定义或对象定义的错误”

供您参考:公式如下:

CONCATENATE(RAL!B2;IF(RAL!C2="";"";"|"&RAL!C2);": P"&MONTH(RAL!A2)&"/"&RIGHT(YEAR(RAL!A2);2);"-R"&MONTH(RAL!I2)&"/"&RIGHT(YEAR(RAL!I2);2);":";IF(RAL!D2="";"";" "&RAL!D2);IF(RAL!E2="";"";" ("&RAL!E2&")");": F"&ROUND(RAL!G2;2)&RAL!F2;" > iP"&IF(RAL!F2="d";ROUND(RAL!G2/7,2*8;2)&"d = "&ROUND(RAL!G2*8;2)&"h";ROUND(RAL!G2;2)&"h");TEXT(I2;" (dd/mm/jjjj uu:mm:ss)"))

这是我的代码的一部分:

Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = Target.EntireRow.Address Then
        stdformula = "=" & Sheets("StdLine").Range("K4")
        Sheets("StdLine").Range("K2").Formula = stdformula
        Application.CutCopyMode = False
        Exit Sub
    End If

End Sub

1 个答案:

答案 0 :(得分:1)

您需要将 .Formula 用于本地化公式(其他语言或其他分隔符),而不是 .FormulaLocal(仅使用逗号作为分隔符的标准英文公式除外)。