2014-09-04 6 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

+0

Поскольку код изменился, мне не кажется, что VBA это VB, они не то же самое. Такие вещи, как 'HashClass (Of Integer)', не являются частью VBA. Я бы выбрал язык и правильно изучил синтаксис/google. – RossC

+0

@RossC, но OP сказал, что он пишет в Excel .. :) он дает синтаксическую ошибку, потому что это не правильный синтаксис VBA ... Я позволю вам справиться с этим, если вы хотите;) – 2014-09-04 11:21:39

ответ

1

Проблема в том, что вы используете синтаксис для проблемы . They are different languages, с различным синтаксисом. Вы говорите на другом языке. Excel использует , Visual Basic для Приложения т. Е. Приложения Microsoft. Корректируйте свой код и синтаксис соответственно.

Предполагая, что вы используете VBA в соответствии с вашим вопросом: для этого вы можете использовать List Item или Collection.

Dim varCollection As Collection 

Там нет List класса, который я знаю в как есть в


В VB (в отличие от VBA), вы можете использовать:

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

На самом деле я хочу использовать это в Excel Macro, где, я думаю, используется VB. Тем не менее, это дает мне ошибку времени компиляции (синтаксическую ошибку), и причина тому же, я думаю, это не получение справочной библиотеки. Поэтому я хочу знать, какую библиотеку ссылок я должен отмечать для использования объектов коллекции? –

+1

@HardikPatel Синтаксическая ошибка? Есть ли какой-то код, который вы не используете, который вызывает его? – 2014-09-04 11:11:15

+1

У меня нет справочной библиотеки для этого, и она отлично работает. Словарь требует сценариев.но коллекция является частью VBA. Попробуйте 'Dim myCollection As VBA.Collection' ** WHAT ** синтаксическую ошибку? Нам нужно больше деталей, просто говоря, что ошибка не годится никому из нас. – RossC

Смежные вопросы