我如何反向工程(已弃用的)Excel V4macros?

我的任务是弄明白这一点。 我没有看到这种types的语言/公式之前,当我谷歌这些公式我似乎无法find任何具体的定义,每个function。 这个工作簿有三张表; 查询表,数据表和Macro1,这显示在Macro1上。

find一个API,帮助或者其他东西来解决这个问题是很好的。

Cmd ExtractData (a) =DEFINE.NAME("Criteria",'Query Sheet'!P1:W2) =DEFINE.NAME("Extract",'Query Sheet'!$A$7:$N$7) =DEFINE.NAME("Database",'Data Sheet'!Database) =EXTRACT(FALSE) =IF(ISBLANK(!A8)) = SELECT("r8c1") = FORMULA("No Match Found") =ELSE() = SELECT("r7c1") = SELECT.END(4) = ROW(ACTIVE.CELL()) = FORMULA.FILL("=Serr_(RC[-9],RC[-8],RC[-7],RC[-6],RC[-3],RC[-2],RC[-1])","R8C14:R"&TEXT(B13,0)&"C14") = SELECT("R8C1:R"&TEXT(B13,0)&"C14") = IF(mSTB="U") = SORT(1,"R8C9",2,"R8C14",1) = ELSE.IF(mSTB="S") = SORT(1,"R8C9",1,"R8C14",1) = ELSE() = SORT(1,"R8C14",1) = END.IF() = SELECT("R8C1") =END.IF() =RETURN() Fctn SErr_ =RESULT(1) =ARGUMENT("Acet",1) =ARGUMENT("Agar",1) =ARGUMENT("PH9",1) =ARGUMENT("PH6",1) =ARGUMENT("IEF",1) =ARGUMENT("Short",1) =ARGUMENT("Long",1) =VarM_(!mAcet,Acet) =VarM_(!mAgar,Agar) =VarM_(!mPH9,PH9) =VarM_(!mPH6,PH6) =VarM_(!mIEF,IEF) =VarM_(!mShort,Short) =VarM_(!mLong,Long) =RETURN(SUMSQ(B36:B42)) Fctn VarM_ =RESULT(1) =ARGUMENT("mNT",3) =ARGUMENT("sN",1) =IF(OR(ISTEXT(mNT),sN= -99),RETURN(0), RETURN(mNT-sN)) 

谢谢

这在Excel中被称为“V4macros”。 他们从Excel V4中回来(Excel 2010是V14),他们已被弃用,但仍然可运行(我认为)。

这些V4macros在这里有一个旧的帮助文件: http : //support.microsoft.com/kb/128185

您可以下载并安装,但结果是一个WinHelp文件,这也是古老的,并不能在Windows中的框中工作了。 如果你能得到一个WinHelp阅读器工作,你应该能够使用它来弄清楚这是怎么回事。 (MS说,他们有WinHelp阅读器可通过Windows 8下载,但我不能让Windows 7的版本为我工作)。


这就是说,我看起来很清楚这里使用的大多数命令是:

 DEFINE.NAME(name,range) Defined a Named Range EXTRACT(False) Probably writes FALSE to the "Extract" named range IF(..), ELSE() Implements an "If..Then..Else.." SELECT(range) Selects the cell or range indicated SELECT.END(4) Selects to the end of something (row, column or sheet?) FORMULA(string) Write the string to the selection as it's formula FORMULA.FILL("<<formula>>",range) Autofills the formula to the range. Uses R1C1 addressing. SORT(..) Probably invokes the Excel Data Sort RETURN() Ends the Command and returns RETURN(expression) Ends the function and returns the value of the expression ARGUMENT("name",number) Assigns names to the functions parameters in order. (no idea what the number does here) 

几乎所有的东西都是EXCEL公式函数,所以你仍然可以查看它们。