Pantera3587
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Есть лист ЗП со следущими данными: Иванов 1 отдел 2500 Петров 1 отдел 3500 Сидоров 2 отдел 2000 Петров 2 отдел 2500 Иванов 3 отдел 2200 где столбцу А присвоила имя Фамилия, столбцу В - Отдел Есть лист КолЧас со следующими данными: Иванов 3 отдел 14 Петров 2 отдел 18 Сидоров 2 отдел 20 Петров 1 отдел 10 Иванов 1 отдел 9 где столбцу А присвоила имя Фамилия1, столбцу В - Отдел1 Есть лист Общая, куда копируются данные с листа ЗП и копируется с листа КолЧас только 3 столбец с количеством часов, но так, чтобы эти часы скопирвались в те ячейки, в которых соотвествствовала фамилия и отдел. Используя запись макроса, получила следующий код: Sub Макрос2() ' ' Макрос2 Макрос ' Макрос записан 22.01.2007 (DIREKTOR) ' ' Sheets("ЗП").Select Columns("A:A").Select Selection.Insert Shift:=xlToRight Range("A1").Select ActiveCell.FormulaR1C1 = "=CONCATENATE(Фамилия,Отдел)" Range("A1").Select Selection.Copy Range("A2:A5").Select ActiveSheet.Paste Sheets("КолЧас").Select Columns("A:A").Select Application.CutCopyMode = False Selection.Insert Shift:=xlToRight Range("A1").Select ActiveCell.FormulaR1C1 = "=CONCATENATE(Фамилия1,Отдел1)" Range("A1").Select Selection.Copy Range("A2:A5").Select ActiveSheet.Paste Sheets("ЗП").Select Columns("A:D").Select Application.CutCopyMode = False Selection.Copy Sheets("Общая").Select Columns("A:D").Select ActiveSheet.Paste Range("E1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],КолЧас!C[-4]:C[-1],4,FALSE)" Range("E1").Select Selection.Copy Range("E2:E5").Select ActiveSheet.Paste End Sub Теперь пытаюсь оптимизировать этот код, исключив вставку нового столбца на всех листах, но ничего не получается. Вот что я написала, используя предыдущие подсказки: Sub Копирование() Dim i As Variant Dim j As Variant Dim i1 As Variant Dim j1 As Variant Dim p As Variant Dim p1 As Variant Range("A1", Range("A65536").End(xlUp)).Copy Sheets(3).Range("a1") Range("b1", Range("b65536").End(xlUp)).Copy Sheets(3).Range("b1") Range("c1", Range("c65536").End(xlUp)).Copy Sheets(3).Range("c1") With Sheets("ЗП") i = Range("A1", Range("A65536").End(xlUp)) j = Range("B1", Range("B65536").End(xlUp)) p = "=i&"" ""&j" End With With Sheets("КолЧас") i1 = Sheets("КолЧас").Range("A1", Range("A65536").End(xlUp)) j1 = Sheets("КолЧас").Range("B1", Range("b65536").End(xlUp)) p1 = "=i1&"" ""&j1" End With If p = p1 Then Sheets("КолЧас").Activate Range("c1", Range("c65536").End(xlUp)).Copy Sheets(3).Range("d1") End If End Sub Может кто поможет? |