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

Страницы: 1
Вхождение данных из одной колонки в другой.
 
Всем привет. Нужна помощь в фильтрации данных.

Имеется таблица с тремя колонками. Первая и вторая колонка это данные артикул товара и объём. Третья колонка это тоже артикула которые нужно найти в первой и получить объём из второй.

Количество данных в третьей колонке постоянно меняются. Можно конечно получить данные протягивая функцию ВПР, но в виду некоторых причин это очень хлопотно.
Данные в первой колонке(артикула) более 75000 тысяч строк. Данные в третьей колонке(артикула) от 500 и до 5000 тысяч. Так что перебор в массиве займёт очень много времени. Я побывал использовать  условное форматирование и менял цвет текста в совпавших ячейках, далее я хотел с помощью автофильтра скрыть все кроме нужных, и используя SpecialCells получить нужные мне данные. Но это тоже долго. Можете подсказать способ по быстрее?

Заранее спасибо.
Как добавить пользовательское события и его обработку в свой класс
 
Всем привет.

Не могу понять принцип создания и обработки своего события в классе.

Имеется два класса TestClass и Class1. В классе TestClass вызывается некоторое событие, а его обработка должна происходить в классе Class1.
Накидал простой пример.
Код
'TestClass 
'Модуль класса где происходит вся работа и где будет вызвано события
Option Explicit

Public WithEvents msv As Worksheet
Public cls As Class1

Public Event SetOne(typ As Boolean)


Private Sub msv_Activate()
    Debug.Print "Активация листа"

End Sub

Private Sub msv_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Debug.Print "Double click"
End Sub

Private Sub msv_SelectionChange(ByVal Target As Range)
    Debug.Print "SelectionChange"

    RaiseEvent SetOne(True) ' ----> Вызов события
End Sub

Property Set Worksheet(wks As Worksheet)
    Set msv = wks
End Property
Код
' Class1
Option Explicit
Public WithEvents cl As TestClass


Private Sub cl_SetOne(typ As Boolean) '------> обработка события
    Debug.Print "Было вызвано событие"
End 

Ошибок интерпретатор не нашёл. Но обработка события не происходит.
Прошу помощи в этом деле. А если ещё и подробно объясните, то будет просто замечательно.
Добавление массива в коллекцию.
 
Всем доброго времени суток.

Создаю пользовательский тип
Код
Private Type try
    nubm As String
    NameStruct As String
End Type
Создаю пользовательскую коллекцию.
Код
Dim col As Collection
Set col = New Collection
Добавить в коллекцию массив типа Integer я могу, а вот массив пользовательского типа - не получается.
Код
Private Sub Worksheet_Activate()
Dim t As try
Dim x As Integer
Dim m() As try

Dim col As Collection
Set col = New Collection
ReDim m(1 To 5)
For x = 1 To 5 Step 1
    m(x).NameStruct = "Проверка"
    m(x).nubm = x

    
Next
col.Add m
Erase m
    
End Sub

Это ограничение VBA, или я делаю, что-то не так?
Создание и заполнения массива коллекций
 
Доброго времени суток всем.

Проблема в следующем. Создаю массив коллекций, но не могу его заполнить.
Код
Dim FilterColl() As New Collection

Redim FilterColl(1 To 3)
FilterColl(1).Add("Boo")
Этот код не работает. Пробую по другому
Код
  Dim FilterColl() As Collection

  ReDim FilterColl(1 To 3) As Collection
  Set FilterColl(1) = New Collection
  FilterColl(1).Add ("Boo")
Этот код уже работает.
Но можно ли как - нибудь это сократить. Что нибудь в таком роде:
Код
Dim FilterColl() As New Collection

Redim FilterColl(1 To 3)
FilterColl(1).Add(Boo)
Буду благодарен за любую помощь.
PS. Можно конечно замутить цикл, но всё же хотелось бы знать. Этот код был написан просто для примера.
Ошибка при использовании большого числа Hyperlink
 
Всем доброго времени суток.

В моём макросе по задумке должно использоваться большое количество Hyperlink, больше 100000.
Но при добавлении в коллекцию Hyperlinks рабочего листа, где то на 65527 итерации происходит ошибка
Цитата
Run-time error '1004'
Application-defined or object-defined error
Использую Excel 2013 x86
Подскажите это лимит коллекции Hyperlinks или лимит количества Hyperlink на листе. И как можно это побороть

Это тестовый пример который я набрасал на скорую руку.
Код
Set s = Workbooks(NameBook).Worksheets(cGenTable)
Set w = Workbooks(NameBook).Worksheets(cListPairs)
For at = 1 To 100000
w.Hyperlinks.Add w.Cells(at, 1), "", s.Cells(at, 1).Address(True, , xlR1C1, True), , "Boo"
Next at

Заранее благодарю за любую помощь в этом вопросе
Страницы: 1
Наверх