Как в этом макросе указать название каждого листа и книги ,при сборе всех листов на один ? - VB

Узнай цену своей работы

Формулировка задачи:

Уважаемые , подскажите пожалуйста , как в этом макросе указать адрес (название каждого листа и книги) перед каждым на листе ("полный список") ?
Sub korobka()
Dim Ws As Worksheet
Dim LastRow As Long
Dim iLastRow As Long
Dim Rng As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
If Sheets(Sheets.Count).Name = "Полный_список" Then Sheets(Sheets.Count).Delete
Sheets(1).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Полный_список"
Set Rng = ActiveSheet.UsedRange
Rng.Clear
For i = 1 To Sheets.Count - 1
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
With Sheets(i)
iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row
Range(.Cells(1, 1), .Cells(iLastRow, 3)).Copy Cells(LastRow + 2, 1)
Range(.Cells(1, 6), .Cells(iLastRow, 9)).Copy Cells(LastRow + 2, 5)
End With
Next
Rows(1).Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Решение задачи: «Как в этом макросе указать название каждого листа и книги ,при сборе всех листов на один ?»

textual
Листинг программы
<font color="blue">Sub</font> korobka()
<font color="blue">Dim</font> Ws <font color="blue">As</font> Worksheet
<font color="blue">Dim</font> LastRow <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">Dim</font> iLastRow <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">Dim</font> Rng <font color="blue">As</font> Range
<font color="blue">Dim</font> sWorkBook <font color="blue">as</font> <font color="blue">String</font>
Application.DisplayAlerts = False
Application.ScreenUpdating = False
<font color="blue">If</font> Sheets(Sheets.Count).<font color="blue">Name</font> = <font color="teal">"Полный_список"</font> <font color="blue">Then</font> Sheets(Sheets.Count).Delete
Sheets(<font color="darkblue"><b>1</b></font>).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).<font color="blue">Name</font> = <font color="teal">"Полный_список"</font>
<font color="blue">Set</font> Rng = ActiveSheet.UsedRange
Rng.Clear
sWorkBook = <font color="teal">"Книга: "</font> & ThisWorkbook.<font color="blue">Name</font>
<font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> Sheets.Count - <font color="darkblue"><b>1</b></font>
LastRow = Cells(Rows.Count, <font color="darkblue"><b>2</b></font>).<font color="blue">End</font>(xlUp).Row
<font color="blue">With</font> Sheets(i)
iLastRow = .Cells(Rows.Count, <font color="darkblue"><b>2</b></font>).<font color="blue">End</font>(xlUp).Row
Range(.Cells(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>), .Cells(iLastRow, <font color="darkblue"><b>3</b></font>)).Copy Cells(LastRow + <font color="darkblue"><b>2</b></font>, <font color="darkblue"><b>1</b></font>)
Range(.Cells(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>6</b></font>), .Cells(iLastRow, <font color="darkblue"><b>9</b></font>)).Copy Cells(LastRow + <font color="darkblue"><b>2</b></font>, <font color="darkblue"><b>5</b></font>)
Cells(LastRow + <font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>).Value = sWorkBook & <font color="teal">"; Лист: "</font> & .<font color="blue">Name</font>
<font color="blue">End</font> <font color="blue">With</font>
<font color="blue">Next</font>
Rows(<font color="darkblue"><b>1</b></font>).Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.286 из 5
Похожие ответы