【发布时间】:2018-12-19 16:22:57
【问题描述】:
最近有人决定将所有 Excel 2010 迁移到 Office 365... 64 位 最近他们意识到在 VBA 中使用了一些 ActiveX、旧版 DLL(用 vb6 编写!!)。 当然,它们不会在 Office 365 中运行,因此我们正在尝试将它们迁移到 .NET 4.5。 我们在 C# 中做了一个小示例 dll(返回一个字符串)。它适用于 Excel 2010,但不适用于 365。(错误 429)。 现在的问题是: 1.它应该起作用/有可能使它起作用吗? 2. 如果有怎么办? 3.如果不是,那么正确的做法是什么(最好不要转储VBA代码)?
好的,vba中的代码很简单
喜欢
Dim x as New Element365.Connection
Dim s as String
s = x.get_String
MsgBox s
and the code in c# just as well...(The dll's name/namespace is Element365)
public class Connection {
public Connection() {
}
public String get_String() {
return "This is a Test"
}
}
提前致谢
【问题讨论】:
-
可能为了说清楚,我们使用regasm注册dll,在VBA中添加引用(找到组件)来使用。但是,当尝试使用它时……它失败了!
-
澄清一下,Office 365 是桌面安装?如果没有,请考虑将代码移植到 TypeScript / Office-JS。
-
尽管有一些原因阻止您考虑使用 Office-JS,但没有足够的信息可以帮助您解决问题。一方面,我们需要查看您在 C# dll 和 VBA 中使用的代码来读取该字符串,以便在出现问题时提供帮助。尽管您显然能够注册 DLL,但它可能无法工作的原因有多种。
-
好的,我大致添加了代码。对于 DLL,我检查了项目属性中的 COM 内容。老实说,我不知道是否需要其他任何东西。也许我会试试这个link
标签: .net vba 64-bit office365 activex