以编程方式在C#中禁用/取消注册Excel UDF

时间:2011-10-24 04:45:03

标签: c# excel registry vsto user-defined-functions

我想知道,我们怎样才能在C#中以编程方式禁用Excel UDF?

我想也许我们可能不得不操纵注册表项来实现这一点。但是我应该在这里查看哪些子键?我不想意外破坏整个子键树结构。请问有人可以给我一些帮助吗?

注册表项结构

HKEY_CLASSES_ROOT

 - CLSID
    - {MYCLASSID}
      - Implemented Categories
      - InprocServer32 **(got quite a few subkeys within, perhaps this one?)**
      - ProgId
      - Programmable

1 个答案:

答案 0 :(得分:0)

幸运的是,我想我已经找到了答案。

子键 InprocServer32 (default)值似乎控制着Excel UDF。如果其值设置为为空,则自动化服务器将无法识别UDF,因此在单元格中显示#Name标记,在这种情况下,这几乎就是我所需要的。

如果我想启用Excel UDF,只需将其值设置为 C:\ WINDOWS \ system32 \ mscoree.dll ,UDF将再次可用。