Добрый день коллеги. Недавно обнаружил, что мой файл копирует только первую заполненную форму, а макрос пытался создать что бы последний лист именно последний. На деле это лист с формой ввода точнее таблица которая в себе содержит очень много данных и что бы оператор не вносил снова и снова "создал" макрос. Но он копирует тольуо первый лист, это уже обнаружил когда начал изучать сам его работу) [vba]
Код
Sub Create() Sheets("ReportBR").Cells(1, 1).Value = DateValue(Now) Number = ActiveSheet.Range("n1").Value Dim a$ a = Cells(3, 3) Sheets("ReportBR").Select Sheets("ReportBR").Copy After:=Worksheets(Worksheets.Count) Worksheets("ReportBR").Name = Range("a5") ActiveSheet.Range("n1").Value = Number + 1 'Sheets(a).Select End Sub
[/vba] Если обратить внимание лист "ReportBR" не имеет в столбце B данных, при копировании листа, создается копия листа с номером. Если мы введем на листе "ReportBR2" в столбце В какое то значение и нажмем кнопку для выполнения макроса, то снова создастся лист "ReportBR" и потеряются данные из столбца В. Что в свою очередь заставит оператора вводить данные вручную, это может привести к ошибке человеческого фактора. Как подправить макрос что бы он копировал именно последний созданный лист и мя листа что бы было "ReportBR2", "ReportBR3".....и т.д. зы. С этих листов будет другим макросом вытягиваться данные в общую таблицу, поэтому имена и структура очень важны. Спасибо большое.
Добрый день коллеги. Недавно обнаружил, что мой файл копирует только первую заполненную форму, а макрос пытался создать что бы последний лист именно последний. На деле это лист с формой ввода точнее таблица которая в себе содержит очень много данных и что бы оператор не вносил снова и снова "создал" макрос. Но он копирует тольуо первый лист, это уже обнаружил когда начал изучать сам его работу) [vba]
Код
Sub Create() Sheets("ReportBR").Cells(1, 1).Value = DateValue(Now) Number = ActiveSheet.Range("n1").Value Dim a$ a = Cells(3, 3) Sheets("ReportBR").Select Sheets("ReportBR").Copy After:=Worksheets(Worksheets.Count) Worksheets("ReportBR").Name = Range("a5") ActiveSheet.Range("n1").Value = Number + 1 'Sheets(a).Select End Sub
[/vba] Если обратить внимание лист "ReportBR" не имеет в столбце B данных, при копировании листа, создается копия листа с номером. Если мы введем на листе "ReportBR2" в столбце В какое то значение и нажмем кнопку для выполнения макроса, то снова создастся лист "ReportBR" и потеряются данные из столбца В. Что в свою очередь заставит оператора вводить данные вручную, это может привести к ошибке человеческого фактора. Как подправить макрос что бы он копировал именно последний созданный лист и мя листа что бы было "ReportBR2", "ReportBR3".....и т.д. зы. С этих листов будет другим макросом вытягиваться данные в общую таблицу, поэтому имена и структура очень важны. Спасибо большое.Santtic