Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как передать объект Range в метод класса ?
 
Создаю класс, в котором будет метод. Метод считает количество строк в диапазон Range. Ниже наброски кода, подскажите, как из модуля передать Range в метод класса ?

Класс:
Код
Option Explicit
Private pDatabaseSheet As Object
Private pCalculatorSheet As Object
Public Property Let DatabaseSheet(DatabaseSheet As Object)
    pDatabaseSheet = DatabaseSheet
End Property

Public Function Calculate()
    Dim testRange As Range
    'Set testRange = pDatabaseSheet - незнаю как передать Range из Модуля
    Set testRange = Workbooks("TestData.xlsx").Worksheets("Лист").Range("A3:AE9") 'Так таботат
    Debug.Print testRange.Rows.Count
End Function 
Модуль:
Код
Option Explicit
Sub Main()
    Dim Document As New Document
    Set Document.DatabaseSheet = Workbooks("TestData.xlsx").Worksheets("Лист").Range("A3:AE9")
    Document.Calculate
End Sub
Ошибку пишет Invalid use of property. Как я понимаю, ошибка именно в модуле, при передаче..
Изменено: dimm - 23.11.2015 16:08:45
Формула считает значение с другого листа, потом преобразует формулу в значение, как ускорить работу макроса
 
Привет!
Пишу макрос, в котором формула с помощью ВПР по ID из первого файла находит значение во втором файле (базе), пишет его в первый файл и преобразовывает его в значение.
Макрос считает мои 80 500+ строк около 20 минут :( Если руками делать, т.е. вставить формулу в первую ячейку, клацнуть по черному кубику в правом углу, то весь столбец считается за 5 минут + макросом преобразовываю формулы в значения.
Подскажите, может я не так макрос пишу:
Код
Function FillColum2()
    Dim formula As String
    Dim counter As Long
    counter = 3
    Debug.Print ("Время начала " & Now)
    Range("K32:K80401").Select
    For Each cell In Selection
        formula = "=ВПР('[Файл_1.xlsb]ID'!A" & counter & ";'[Файл_2.xlsb]База'!$A$3:$AE$80500;13;ЛОЖЬ)"
        cell.FormulaLocal = formula
        cell.formula = cell.Value
        counter = counter + 1
    Next cell
    Debug.Print ("Время окончания " & Now)
End Function
Изменено: dimm - 14.11.2015 23:31:11
Подсчет дубликатов.
 
Добрый день.

По сабжу в сети нашел вот такую формулу:
Код
=СУММПРОИЗВ(--(СЧЁТЕСЛИ(A2:A11;A2:A11)>1))
Объясните по подробнее, как она работает?
Страницы: 1
Наверх