记录EXCEL MACRO上的公式

时间:2017-11-20 06:20:05

标签: excel vba excel-vba

我试图让我的工作变得更轻松,而且我遇到了一个问题,不仅我不知道如何解决,而且我也不知道为什么会这样。发生在第一位。 所以我试着录制一个宏,为了满足我的需要,我需要根据两个不同的值做一些计算。无论如何。每当我尝试录制宏并插入此公式时,一切都还可以!

=
IF(C1="LPPD";"MIPRU";
IF(C1="LPGR";"DCT";
IF(OR(C1="LPFL";C1="LPCR");"LADOX";
IF(OR(C1="LPPI";C1="LPSJ";C1="LPHR");"NOTMA";
"ERRO"))))

对于其他两个,我知道公式有效,因为我从中得到了预期的结果,但是Excel的宏记录器会弹出一条消息,说明"无法记录"。 以下是另外两个公式:

=
IF(C1="LPGR";"00:15";
IF(C1="LPPD";"00:30";
IF(AND(E1="DH8D";OR(C1="LPSJ";C1="LPHR"));"00:25";
IF(AND(E1="DH8B";OR(C1="LPFL";C1="LPCR"));"01:00";
IF(AND(E1="DH8B";OR(C1="LPPI";C1="LPSJ";C1="LPHR"));"00:30";
IF(AND(E1="DH8D";C1="LPPI");"00:20";
IF(AND(E1="DH8D";C1="LPFL");"00:40";
"ERRO")))))))

另一个:

=
IF(OR(C1="LPPI";C1="LPSJ";C1="LPHR");"FL100";
IF(AND(E1="DH8B";C1="LPPD");"FL120";
IF(AND(E1="DH8D";C1="LPPD");"FL180";
IF(AND(E1="DH8B";C1="LPGR");"FL060";
IF(AND(E1="DH8D";C1="LPGR");"FL080";
IF(AND(E1="DH8B";OR(C1="LPFL";C1="LPCR"));"FL140";
IF(AND(E1="DH8D";C1="LPFL");"FL180";
"ERRO")))))))

出于某种原因,Excel不允许我记录这个公式。你们是否会找出原因?我真的希望你能在这里帮助我! 将此公式转换为VBA将是一个痛苦的****,因为这个方法我只需在第一行输入公式,然后拖动以将它们扩展到以下行......

致以最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

用逗号替换所有这些分号。 Excel在技术上现在能够使用分号作为列表分隔符,但它可能会使宏混淆。

例如,请尝试以下第三个公式:

=IF(OR(C1="LPPI",C1="LPSJ",C1="LPHR"), "FL100",IF(AND(E1="DH8B",C1="LPPD"),
"FL120",IF(AND(E1="DH8D",C1="LPPD"),
"FL180",IF(AND(E1="DH8B",C1="LPGR"),
"FL060",IF(AND(E1="DH8D",C1="LPGR"),
"FL080",IF(AND(E1="DH8B",OR(C1="LPFL",C1="LPCR")),
"FL140",IF(AND(E1="DH8D",C1="LPFL"), "FL180","ERRO")))))))