Я настраиваю модуль для удаления дублирующихся строк. Я хочу проверить это, используя 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()
?