Здравствуйте, есть макрос для переноса всех значений страниц, на отдельную страницу, можно как то его дополнить чтобы он не трогал страницу "общий" [vba]
Код
Sub() ' ' '
' s_ = Sheets.Count Sheets.Add After:=Sheets(s_) For i = 1 To s_ r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r_ Next End Sub
[/vba]
Здравствуйте, есть макрос для переноса всех значений страниц, на отдельную страницу, можно как то его дополнить чтобы он не трогал страницу "общий" [vba]
Код
Sub() ' ' '
' s_ = Sheets.Count Sheets.Add After:=Sheets(s_) For i = 1 To s_ r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r_ Next End Sub
Вы в цикле проверяете листы. Перед проверкой нужно узнать, стоит ли... И. естественно. не забыть закрыть оператор - End If [vba]
Код
For i = 1 To s_ If Sheets(i).Name <> "общий" Then r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r End If Next
[/vba] Если ошибка остается, показывайте в файле-примере
Вы в цикле проверяете листы. Перед проверкой нужно узнать, стоит ли... И. естественно. не забыть закрыть оператор - End If [vba]
Код
For i = 1 To s_ If Sheets(i).Name <> "общий" Then r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r End If Next
[/vba] Если ошибка остается, показывайте в файле-примереvikttur
Добавить перед процедурой, на самом верху модуля. Но этого мало. Нужно объявить все переменные. Следующий быстрый вопрос "как?" не принимается - сначала ищете сами, потом вопрос на форум.
Цитата
Посмотрите, что потеряли.
Ошибку в строке нашли?
Цитата
немного не понял
А что из этого поняли "много"?
Добавить перед процедурой, на самом верху модуля. Но этого мало. Нужно объявить все переменные. Следующий быстрый вопрос "как?" не принимается - сначала ищете сами, потом вопрос на форум.
' Dim s_, i, n_, r_ s_ = Sheets.Count Sheets.Add After:=Sheets(s_) For i = 1 To s_ If Sheets(i).Name <> "îáùèé" Then r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r End If Next End Sub
Ошибка не знаю в чем, макрос и так себя выполнял нормально, только одну страницу надо исключить, может [vba]
Код
Application.ScreenUpdating = False
[/vba], если не хотите помогать не надо, я к вам за помощью обратился а не за наставлением
[vba]
Код
Sub () ' ' '
' Dim s_, i, n_, r_ s_ = Sheets.Count Sheets.Add After:=Sheets(s_) For i = 1 To s_ If Sheets(i).Name <> "îáùèé" Then r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A2", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r End If Next End Sub
Да я уже Вам показа! Нужно лишь внимательно смотреть. Переменная r_ , а в показанной строке r - это совсем другая переменная, она всегда равна нулю.
Да я уже Вам показа! Нужно лишь внимательно смотреть. Переменная r_ , а в показанной строке r - это совсем другая переменная, она всегда равна нулю.vikttur