AndVGri
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вы ображаетесь ниже к Worksheets("Остаток") и "Ведомость" (до того "TDSheet") Тогда можно код записать так Код: Sheets("TDSheet").Name = "Ведомость" Sheets.Add Sheets("Лист1").Move After:=Sheets(2) Sheets("Лист1").Name = "Остаток" ... Dim pSource As Worksheet, pDest As Worksheet | заменить кодом Код: Dim pSource As Worksheet, pDest As Worksheet Set pSource = Worksheets("TDSeet") Set pDest = Worksheets.Add pDest.Move Aster:=Sheets(2) 'Кстати, не мешало бы в следующих строках проверить, а нет ли листов с таким именем? pDest.Name = "Остаток" pSource.Name = "Ведомость" | Следующий блок Код: Worksheets("Остаток").Range("A1").Value = "Наименование" Worksheets("Остаток").Range("B1").Value = "Номенклатурный номер" Worksheets("Остаток").Range("C1").Value = "Остаток кол-во" Worksheets("Остаток").Range("D1").Value = "Остаток цена" Worksheets("Остаток").Range("E1").Value = "Приход количество" Worksheets("Остаток").Range("F1").Value = "Приход цена" Sheets.Add Sheets("Ведомость").Select ActiveWindow.DisplayOutline = False Rows("1:11").Select Selection.Delete Shift:=xlUp Range("A:A,D:D,F:F,G:G,H:H").Select Range("G1").Activate Selection.Delete Shift:=xlToLeft Range("A1").Select | Упрощается Код: 'Так как "Остаток" активный рабочий лист (чем вы пользуетесь далее) Range("A1:F1").Value = Array("Наименование", "Номенклатурный номер", "Остаток кол-во", _ "Остаток цена", "Приход количество", "Приход цена") 'Sheets.Add - вот это явно лишнее pSource.Select Rows("1:11").Delete Shift :=xlUp Columns("A:H").Delete Shift := xlToLeft | Следующий блок, не стоит использовать цикл, если вы физически изменяете область его действия Код: Dim r As Long, LastRow As Long LastRow = Worksheets("Ведомость").Range("A65536").End(xlUp).Row For r = 1 To LastRow If Cells(r, 1).Font.Bold = True Then Rows(r + 1).Delete Shift:=xlUp End If If Cells(r, 1).Font.Bold = True Then Rows(r).Delete Shift:=xlUp End If Next r | Лучше это выполнить так Код: Dim r As Long, LastRow As Long LastRow = Range("A65536").End(xlUp).Row 'Опять же, "Ведомость" уже активный лист r = 1 Do Until r > LastRow If Cells(r, 1).Font.Bold Then 'Если Bold = True итак войдёт, масло маслянное получилось Rows(r + 1).Delete Shift:=xlUp LastRow = LastRow - 1 End If If Cells(r, 1).Font.Bold Then Row(r).Delete Shift:=xlUp LastRow = LastRow - 1 End If r = r + 1 Loop | Вообще по этим блокам впрос: а стоило ли корёжить исходные данные, не проще ли было организовать синтактсический разбор исходных данных без этих удалений? Ну, и последний блок форматирования "Остаток" Код: Worksheets("Остаток").Activate Columns("A:A").ColumnWidth = 40 Columns("B:B").ColumnWidth = 15.83 Columns("C:C").ColumnWidth = 11 Columns("D:D").ColumnWidth = 11 Columns("E:E").ColumnWidth = 11 Columns("F:F").ColumnWidth = 11 Columns("B:B").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom End With Columns("C:C").Select Selection.NumberFormat = "#,##0.000" With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False End With Columns("D:D").Select Selection.NumberFormat = "#,##0.00" With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom End With Columns("E:E").Select Selection.NumberFormat = "0.000" With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom End With Columns("F:F").Select Selection.NumberFormat = "#,##0.00" With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False End With Rows("1:1").RowHeight = 29.25 Range("A1:F1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True End With | Упрощается Код: pDest.Select Columns("A:A").ColumnWidth = 40 With Columns("B:B") .ColumnWidth = 40 .HorizontalAlignment = xlCenter End With With Columns("C:F") .ColumnWidth = 11 .HorizontalAlignment = xlRight .NumberFormat = "#,##0.00" End With Columns("C:C").NumberFormat = "#,##0.000" Columns("E:E").NumberFormat = "0.000" With Range("A1:F1") .RowHeight = 29.25 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True End With | | Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 17:17 21-04-2007 | Исправлено: AndVGri, 18:38 21-04-2007 |
|