Сравнили. Совпало. Что дальше? Сколько не пытался понять, в чем идея, так и не понял.
Записать количество совпадений... [vba]
Code
Option Explicit
Private Sub Worksheet_Activate() Dim Sh As Worksheet, Clmn1 As Range, TCell As Range Dim Arr1(), Arr2(), V1 Dim S() As Double Dim N As Long, J As Long, K As Long ' Set Clmn1 = Range(Me.Range("I1"), Me.Range("I1").End(xlDown)) Arr1 = Clmn1.Value N = Clmn1.Rows.Count ReDim S(1 To N, 1 To 1) For Each Sh In Worksheets If Not Sh Is Me Then Set TCell = Sh.Range("J22") Arr2 = Sh.Range(TCell, TCell.End(xlDown)).Value For J = 1 To UBound(Arr2, 1) V1 = Arr2(J, 1) For K = 1 To N If V1 = Arr1(K, 1) Then S(K, 1) = S(K, 1) + 1 Next Next End If Next Clmn1.Offset(0, 1).Value = S End Sub
[/vba] Вот код листа "График", но работает жутко медленно и криво
Quote (RAN)
Сравнили. Совпало. Что дальше? Сколько не пытался понять, в чем идея, так и не понял.
Записать количество совпадений... [vba]
Code
Option Explicit
Private Sub Worksheet_Activate() Dim Sh As Worksheet, Clmn1 As Range, TCell As Range Dim Arr1(), Arr2(), V1 Dim S() As Double Dim N As Long, J As Long, K As Long ' Set Clmn1 = Range(Me.Range("I1"), Me.Range("I1").End(xlDown)) Arr1 = Clmn1.Value N = Clmn1.Rows.Count ReDim S(1 To N, 1 To 1) For Each Sh In Worksheets If Not Sh Is Me Then Set TCell = Sh.Range("J22") Arr2 = Sh.Range(TCell, TCell.End(xlDown)).Value For J = 1 To UBound(Arr2, 1) V1 = Arr2(J, 1) For K = 1 To N If V1 = Arr1(K, 1) Then S(K, 1) = S(K, 1) + 1 Next Next End If Next Clmn1.Offset(0, 1).Value = S End Sub
[/vba] Вот код листа "График", но работает жутко медленно и криво dr_ZmeY
ААААААА!!! Блин, проблема с другим кодом... Этот заработал, но, собака медленно. На генерируемые листы дата выводится не правильно. Код в модуле... Может там ошибка? Для первого сгенерированного листа даты выводятся, но, как текст, для последующих - выводятся нули, поэтому и счётчик не работал...
ААААААА!!! Блин, проблема с другим кодом... Этот заработал, но, собака медленно. На генерируемые листы дата выводится не правильно. Код в модуле... Может там ошибка? Для первого сгенерированного листа даты выводятся, но, как текст, для последующих - выводятся нули, поэтому и счётчик не работал...dr_ZmeY
Да посчитать-то как раз проще всего. Пишем все даты эталона в массив (словарь) Проверяем все даты из других листов. Совпало - счетчик щелкнул. Хорошо... А вот что дальше делать?
Да посчитать-то как раз проще всего. Пишем все даты эталона в массив (словарь) Проверяем все даты из других листов. Совпало - счетчик щелкнул. Хорошо... А вот что дальше делать? RAN
Да проблема уже не со счётчиком, он работает, хоть и криво. Проблема с кодом в модуле, который генерирует массивы дат, из которых потом сравниваем. Не пойму что там не так... На первый сгенерированный лист даты пишет, но в формате текста, так что потом счётчик их не читает. На второй и последующие листы - пишет нули...
Quote (RAN)
А вот что дальше делать?
Да проблема уже не со счётчиком, он работает, хоть и криво. Проблема с кодом в модуле, который генерирует массивы дат, из которых потом сравниваем. Не пойму что там не так... На первый сгенерированный лист даты пишет, но в формате текста, так что потом счётчик их не читает. На второй и последующие листы - пишет нули...dr_ZmeY
Сколько не пытался понять, в чем идея, так и не понял.
Столбцы не перемещены, а просто я создал параллельный столбец дат, из которого выкинуты праздники. Генерация листов - полностью Ваш код (вместе с тараканами). ( в смысле что и куда пихать) Генерится только Шаблон, Проект не трогал. В общем - тема для размышления.
Я уже писал
Quote (RAN)
Сколько не пытался понять, в чем идея, так и не понял.
Столбцы не перемещены, а просто я создал параллельный столбец дат, из которого выкинуты праздники. Генерация листов - полностью Ваш код (вместе с тараканами). ( в смысле что и куда пихать) Генерится только Шаблон, Проект не трогал. В общем - тема для размышления.RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Четверг, 26.04.2012, 21:15