Установить массив в одном модуле для использования в другом - PullRequest
0 голосов
/ 12 марта 2020

Я настраиваю модуль для удаления дублирующихся строк. Я хочу проверить это, используя 3 или более столбцов в массиве.

Это код, который у меня есть:

Sub RemoveDuplicateRows()
    'the duplicate rows from a particular column in a range of data.

    Dim MyRange As Range
    Dim LastRow As Long

    LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
    Set MyRange = ActiveSheet.Range("A1:Z" & LastRow)
    'duplicateArray
    MyRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
End Sub

Мне понадобится это, чтобы использовать при создании различных отчетов (я буду вызовите его из других модулей). Я надеялся установить глобальную переменную для массива, а затем установить этот массив в модулях отчета, чтобы отправить его этому модулю.

Например, я мог бы сделать что-то вроде этого:

Option Explicit

Global arrayForDuplicates As Variant

    Public Sub report1()

        '------Code to run report------

        arrayForDuplicates = (1,2,3)  'set array to be used in this report
        Call RemoveDuplicateRows      'Call sub

    End Sub


    Sub RemoveDuplicateRows()
        'the duplicate rows from a particular column in a range of data.

        Dim MyRange As Range
        Dim LastRow As Long

        LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
        Set MyRange = ActiveSheet.Range("A1:Z" & LastRow)
        'duplicateArray
        MyRange.RemoveDuplicates Columns:=arrayForDuplicates, Header:=xlYes 'CALL THE ARRAY VARIABLE HERE TO USE NUMBERS FROM OTHER SUB
    End Sub

Конечно, я попробовал это, и это не работает. Как установить глобальную переменную в виде массива в report1(), чтобы использовать ее в команде RemoveDuplicates в RemoveDuplicateRows()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...