【发布时间】:2014-11-15 02:46:33
【问题描述】:
我正在尝试在 vb.net 中绑定/使用对象,例如 excel.application 等。 我主要是vb6 coder,现在转学vb.net。
在 vb6 中,我可以使用 createobject 函数轻松处理该问题
这是vb6代码:
Dim objXLS As Object
Dim objWorkBook As Object
Set objXLS = CreateObject("Excel.Application")
objXLS.Visible = False
Set objWorkBook = objXLS.Workbooks.Open("Excel File Goes Here")
objWorkBook.SaveAs strCurPath & "\Temp.csv", 6
objWorkBook.Close 2
objXLS.Quit
Set objWorkBook = Nothing
Set objXLS = Nothing
我查看了互联网,发现以下解决方案适用于 c#,但不适用于 .net。而且我无法在 vb.net 中使用动态类型/命令。
这是链接:
Equivalent code of CreateObject in C#
也有杂乱无章的方式..但我喜欢用简单的方式(标签绑定左右)
那么,在 vb.net 中使用动态密钥的任何方式或在 vb.net 中的等效项是什么?
【问题讨论】:
-
VB6
CreateObject的等价物是...CreateObject。您将在Microsoft.VisualBasic命名空间中找到它。但是,您应该添加对 MS Excel 对象库的引用以确保强类型变量。 -
@Bjørn-RogerKringsjå,谢谢先生,但我不想使用 Microsoft.VisualBasic 命名空间,因为这不是他们正确学习 vb.net 的正确方法。我已经克服了许多没有该名称空间的问题,现在坚持下去。
-
哈利路亚!你在正确的道路上。转到项目 > 添加参考 > com > Microsoft Excel(版本)对象库。如果找不到,请搜索并下载。
-
@Bjørn-RogerKringsjå,再次感谢先生,但请注意“Microsoft Excel(版本)对象”,为什么我没有添加直接引用,因为用户可能没有相同版本的 office/excel 库已安装:((可能是我错了)但是无论用户在他们的电脑上安装了什么版本,如何使用我的代码?
-
@user3614957 您似乎将
Microsoft.VisualBasic命名空间与Microsoft.VisualBasic.Compatibility命名空间混淆了。您可能会避免使用后者,但前者是包含许多实际 VB 特性和功能的正确 VB。如果您打算避免这种情况,则最好避免将 VB 作为一种通用语言。