Цитата |
---|
Hugo пишет: Единица прибавляется не к значению ключа - а к значению item'а ключа. |
Вот я не понимаю
как можно так сделать: к значению 16000|Петров|Москва|25|5 прибавить 1?
Цитата |
---|
Hugo пишет: А вообще как я уже сказал - я не понял что именно Вы хотели сделать. Может нужно было что-то другое - кто знает... |
Две таблицы есть у нас: ПЕРВАЯ, ВТОРАЯ.
Проверить нужно во ВТОРОЙ наличие данных из ПЕРВОЙ: что-то на подобие составного ключа, если бы мы проверяли функцией ВПР.
Вот мой вариант того, что нужно на Вашем примере: там где 1 будет в столбике ПРОВЕРКА, значит значение уникально.
Скрытый текст |
---|
Код |
---|
Sub tt()
Dim a(), i&
Dim tm As Single: tm = Timer
Dim cou As Long
With CreateObject("Scripting.Dictionary"): .comparemode = 1
a = [ПЕРВАЯ!A1].CurrentRegion.Value
For i = 2 To UBound(a)
cou = cou + 1
t = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 5)
.Item(t) = .Item(t) + 1
Next
a = [ВТОРАЯ!A1].CurrentRegion.Value
For i = 2 To UBound(a)
t = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 5)
.Item(t) = .Item(t) + 1
Next
ReDim a(1 To cou + 1, 1 To 6): i = 1
a(i, 1) = "САЙТ": a(i, 2) = "КК": a(i, 3) = "КОД": a(i, 4) = "ЛВ": a(i, 5) = "УК": a(i, 6) = "ПРОВЕРКА"
For Each k In .keys
If cou < i Then Exit For
i = i + 1
arr = Split(k, "|")
a(i, 1) = arr(0): a(i, 2) = arr(1): a(i, 3) = arr(2): a(i, 4) = arr(3): a(i, 5) = arr(4): a(i, 6) = .Item(k)
'If .Item(k) = 1 Then a(i, 6) = "нет" Else a(i, 6) = "ок"
Next
End With
Generatesh a
MsgBox "Запрос выполнен! " & Timer - tm
End Sub
Private Sub Generatesh(arr)
Dim ws As Worksheet
With ThisWorkbook
On Error Resume Next
Set ws = .Worksheets("Итог")
On Error GoTo 0
If ws Is Nothing Then Set ws = .Worksheets.Add(after:=.Worksheets(.Worksheets.Count))
With ws
'.Cells.Clear
.Name = "Итог"
.[a1].Resize(UBound(arr), UBound(arr, 2)) = arr
End With
End With
End Sub
|
|
Правда тут есть такой подводный камень: нужно будет проверять, чтоб в первой таблице дубли тоже отсутствовали (тут можно перебором сделать, не важно, мне важно понять про эту единицу, прибавляемую к значению).
Спасибо.