要疯了,VS2008写的dll,注册成com,在Excel 2000 VBA里调用,老是不成功.

mademelaugh 2008-11-05 12:03:49
1,.Net代码如下:

Imports System
Imports System.Runtime.InteropServices

<Guid("b9c7ce7b-86f4-4406-9f0d-9b2e2c844859")> <ComVisible(True)> Public Interface ITest
Function GetTest() As Integer
End Interface


<Guid("ca1bd88b-4211-49cb-9211-70f6e1d414db")> <ComVisible(True)> Public Class TestClass
Implements ITest

Public Function GetTest() As Integer Implements ITest.GetTest
Return 1
End Function
End Class

2,注册:regasm /tlb classlibrary1.dll
3,Excel VBA-工具-引用,引用classlibrary1
4,VBA代码如下
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As ClassLibrary1.ITest

Set a = New ClassLibrary1.TestClass

VBAProject.Sheet1.Cells(1, 1) = a.GetTest

End Sub

然而在Set a = New ClassLibrary1.TestClass这一句,出现如下错误:

运行时错误 '-2147024894' File or assembly name ClassLibrary1, or one of its dependencies, was not found.


请问有人遇到过这种问题没?
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2008-11-05
  • 打赏
  • 举报
回复
工程属性--编译--为com 注册

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
mademelaugh 2008-11-05
  • 打赏
  • 举报
回复
已解决.

编写如下配置节:
<configuration>

<startup>

<supportedRuntime version="v2.0.50727" />

</startup>

</configuration>
保存为Excel.exe.config,放在Excel 2000执行文件目录下就行了.
蒋晟 2008-11-05
  • 打赏
  • 举报
回复
File or assembly name ClassLibrary1, or one of its dependencies, was not found
你的dll依赖于Excel 2007吗?
mademelaugh 2008-11-05
  • 打赏
  • 举报
回复
我本机是Excel 2007,自动注册还是手动注册都可以.生产机器上是Excel 2000,只安装了.net framework没有Visual studio.一直都报这个错,愁死了.请问你拿Excel 2000试过的吗?
feiyun0112 2008-11-05
  • 打赏
  • 举报
回复
我试了没问题,你重新编译引用看看,不用运行regasm
mademelaugh 2008-11-05
  • 打赏
  • 举报
回复
谢谢回复.这个我知道.我在Excel 2007里执行是ok的.在Excel 2000里不行.

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧