vasiliy74
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору нет не помогло, вобщем вот я стоб на нужном столбце Код: Sub GeniralМакрос() 'ищем значение по наименованию столбцп так как таблицы две останавливаемся на втором Cells.Find(What:="Наименование цен", After:=ActiveCell, LookIn _ :=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Cells.FindNext(After:=ActiveCell).Activate ' MsgBox "Нашли начальную ячейку" 'создаём временный лист в котором будет храниться список бумаг и скрываем его '!Необходимо будет сделать проверку на существование подобного листа Sheets.Add.Name = "Список" ActiveWindow.SelectedSheets.Visible = False Range.Next.Cells ActiveCell.Offset(3, 0).Select Dim in_r As Range, out_r As Range Dim index As Long, found As Boolean Dim c1 As Variant, c2 As Variant index = 1 ' Входной диапазон на листе со внешним именем "Лист1" A:A изменил Dim last_cell As Long With Worksheets("OTCHET") last_cell = .Cells.SpecialCells(xlCellTypeLastCell).Row 'Set in_r = Range(.Cells(2, "A"), .Cells(last_cell, "A")) ' или так: Set in_r = Range(.Cells(2, 1), .Cells(last_cell, 1)) End With ' Выходной диапазон на листе со внешним именем "СписокБумаг" A:A Set out_r = Worksheets("Список").Range("A:A") For Each c1 In in_r.Cells found = False For Each c2 In out_r.Cells If IsEmpty(c2) Then Exit For found = (c2.Value = c1.Value) If found Then Exit For Next c2 If Not found Then out_r.Cells(index, 1).Value = c1.Value index = index + 1 End If If IsEmpty(c1) Then Exit For Next c1 MsgBox "Done", vbInformation End Sub | Добавлено: Цитата: сразу его приобразовать к коллекции Worksheets | т.е. посучать вид например D56? я тоже считаю что приобразовывать лучше поискал синтаксис не нашол как... |