2014-09-04 91 views
-3

我的數據是Excel宏與集合實例

Person  City New City 
A   P 
B   Q 
C   R 

我想隨機城市列表中指定新城的人(第2列)。但是,新城不應該與已經分配給該人的那個相同。

我試着創建一個Excel宏,但是,我無法獲得相同的參考庫。例如

Dim RandomClass As New Random() 
Dim RememberSet As New HashSet(Of Integer) 

Dim RandomNumber As Integer 

While RememberSet.Count < 5 
    RandomNumber = RandomClass.Next(0, 10) 
    If RememberSet.Add(RandomNumber) Then 
     MsgBox (RandomNumber) 
    End If 
End While 

在前兩行給出編譯時錯誤。任何人都可以幫忙嗎?或者上傳一個使用列表或集合的excel宏?

+1

你能請澄清這實際上是什麼語言:它被標記爲[tag:vba]和[tag:excel]和[tag:macros]然而在你的評論中,我怎麼回答你說的「這是VB」。他們不一樣,答案也會有所不同。我已經在我的答案中添加了兩種語言的集合,但請澄清。另外如果可能的話,請考慮通過選擇最佳答案來關閉一些其他未解決的問題。考慮哪些答案是有用的並且需要贊成。我們需要用戶維護他們的問題,以便該網站可以成爲有問題的下一個人的有效工具。 – RossC 2014-09-04 11:07:03

+0

由於代碼已經改變,這對我來說不是VBA,而是VB,它們不一樣。像「HashClass(Of Integer)」這樣的東西不是VBA的一部分。我會選擇一種語言並適當地學習語法/谷歌。 – RossC 2014-09-04 11:20:54

+0

@RossC,但OP說他正在用Excel編寫.. :)它給出了一個語法錯誤,因爲它不是正確的VBA語法......如果你願意,我會讓你處理這個問題;) – 2014-09-04 11:21:39

回答

1

問題是您正在使用語法來解決問題。 They are different languages,語法不同。你說的是另一種語言。 Excel使用,Visual Basic for Applications即Microsoft Applications。相應地調整您的代碼和語法。

假設您按照您的問題使用VBA:您可以使用List ItemCollection來執行此操作。

Dim varCollection As Collection 

沒有List類,我在知道這樣存在


在VB(而不是VBA),您可以使用:

Dim varCollection As New Microsoft.VisualBasic.Collection() 
+0

其實我想在Excel中使用這個宏,我認爲使用VB。然而,這給我編譯時錯誤(語法錯誤)和我認爲相同的原因是它沒有得到參考庫。所以我想知道應該標記哪個引用庫來使用集合對象? – 2014-09-04 11:09:33

+1

@HardikPatel語法錯誤?有沒有一些代碼是你沒有分享的? – 2014-09-04 11:11:15

+1

我沒有任何這方面的參考資料庫,它工作正常。字典需要腳本。運行時,但集合是VBA的一部分。嘗試'Dim myCollection As VBA.Collection' **什麼**語法錯誤?我們需要更多的細節,只是說錯誤對我們任何人都沒有好處。 – RossC 2014-09-04 11:12:00