【发布时间】:2018-05-05 02:09:56
【问题描述】:
长期以来,我一直在使用 Excel 中的嵌入式 VB 编辑器编写 Excel 宏。现在我们正在尝试将一个项目转移到 Visual Studio 以利用 VB.net 和 TFS 服务的功能。你们中的一位 VB.NET 专家能否给我一个示例,说明下面的 VB 代码看起来像 VB.NET?有问题的项目是 VSTO 上的 Excel 文档自定义。我发现有很多关于 Excel 插件的帖子,但与定制项目相关的有用的帖子不多。我想不出像取一个字符串这样简单的东西,用它来抓取一张纸,然后改变这张纸的一些属性。
Sub ProcessSheet(sheet As String, box As Boolean)
With Sheets(sheet)
If box = True Then
.Visible = True
Else
.Visible = False
End If
End With
End Sub
提前感谢您的帮助。如果我能得到一些指示,我相信我可以从那里开始使用它。
【问题讨论】:
-
我对 Excel 不太擅长,但是你的 sub 的最后一个参数需要一个数据类型。不好将其命名为类型
c As Color -
你是对的@Mary,它在 Embedded vb 中工作,但这是我尝试在 VB.NET 中编写时遇到的错误的一部分。在这种情况下,它是微不足道的,我将删除 sub 的那部分以避免混淆。
-
如果您还没有意识到这一点,要掌握的主要概念是您正在针对Excel Object Model API 进行编程(使用:VBA、VB.Net、C# 等),并且此 API 是COM interfaces 的图书馆。 VBA 允许松散的数据类型。带有
Option Strict Off的VB.Net 近似于这种松散的数据类型; .Net 强制执行强数据类型,这就是许多问题开始的地方。启用Option Strict以强制执行强类型。 -
VSTO 是一个项目模板,它设置框架以使用 Excel 对象模型并添加一些功能。你不需要使用它,很多人也不需要。您可以通过 Project Menu->Add Reference->COM Tab->Microsoft Excel xx.y Object Library 将 Excel 对象模型的项目引用添加到任何项目。然后将
Imports Excel=Microsoft.Office.Interop.Excel添加到您的代码中,以方便引用Excel 类型。与在 VBA IDE 中一样,使用Object Browser(查看菜单->对象浏览器)检查类型。 -
由于 SO 不是提供教程的,这个问题可能会被关闭,我建议你研究“Excel 自动化”,你会发现很多例子。