10

我在使用 VB.NET 编写方面非常陌生,我什至没有意识到 VB.NET 和 VBA 之间存在显着差异。我一直在 Visual Studio 中编写我的应用程序,但我意识到我需要将它移植到 Outlook 中的 VBA,并且我需要处理一些语法问题。我已经搜索过,但我找不到任何类型的 VBA 甚至 VB6 的明确参考(如 msdn),据我所知,它比 VB.NET 更接近 VBA。

我将在此处包含相关的代码部分。如果有人需要更多上下文,请告诉我——我可以发布整个内容,不会那么长。不过,我想让这篇文章尽可能简单。

Dim DateToday As String = String.Format("0:{yyyy/MM/dd}", DateTime.Now)
Dim Computers As New SortedList()
Dim disabledList As New List(Of String)
'\\ four additional lists
Dim compArray As Array

...

Computers.Add(ComputerName, ErrorState)

新列表和排序列表在列表后面的括号中给出预期:语句结束。该数组在数组中给出 Expected: 标识符。字符串 DateToday 在等号处给出了预期的语句结尾。尝试添加到排序列表会给出预期:=。

我使用 VB.NET 可能已经有两三天了,而且我以前从未使用过 VBA 或 VB6,所以我只是没有知道从这里去哪里所需的经验。如果你们中的任何人愿意帮助我,我将不胜感激!

4

1 回答 1

15

您将不得不更改一些数据类型,但鉴于我使用的数据类型可能不准确,您刚刚发布的基本内容可能会转换为与此类似的内容。

Dim DateToday As String: DateToday = Format(Date, "yyyy/MM/dd")
Dim Computers As New Collection
Dim disabledList As New Collection
Dim compArray(1 To 1) As String

'Assign data to first item in array
compArray(1) = "asdf"

'Format = Item, Key
Computers.Add "ErrorState", "Computer Name"

'Prints "ErrorState"
Debug.Print Computers("Computer Name")

集合无法排序,因此如果您需要对数据进行排序,您可能需要使用数组。

这是 Outlook 开发人员参考的链接。 http://msdn.microsoft.com/en-us/library/office/ff866465%28v=office.14%29.aspx

另一个可以帮助您入门的好网站是 http://www.cpearson.com/Excel/Topic.aspx

将所有内容从 VB.Net 转移到 VBA 并非易事,因为并非所有数据类型都相同,而且您没有 .Net 框架。如果您卡住了,只需发布​​您卡住转换的代码,您一定会得到一些帮助!

编辑:

Sub ArrayExample()
    Dim subject As String
    Dim TestArray() As String
    Dim counter As Long

    subject = "Example"
    counter = Len(subject)

    ReDim TestArray(1 To counter) As String

    For counter = 1 To Len(subject)
        TestArray(counter) = Right(Left(subject, counter), 1)
    Next
End Sub
于 2013-06-10T16:42:27.307 回答