Я хочу скопировать рабочий лист и поместить его прямо после другого листа. Но у меня проблемы, когда есть скрытые листы.Excel VBA WorkSheet.Copy После Excel 2013
Используя Excel 2013, я открываю новую книгу. Добавить лист после "Sheet1". Переименуйте его «HiddenSheet2» Добавьте лист после «HiddenSheet2». Переименуйте лист «Лист3» Так что у меня «Лист1» - «HiddenSheet1» - «Sheet3» Тогда скрыть «HiddenSheet1»
Следующая запустить этот VBA код:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
End Sub
Введенный лист получить помещен после «HiddenSheet2», а не после «Sheet1». Я обнаружил, что скопированный лист становится активным листом.
Get Handle on last worksheet copied by Worksheet.Copy
VBA Copy Sheet to End of Workbook (with Hidden Worksheets)
Но моя проблема в том, мне нужно простыню, чтобы оставаться в определенном порядке.
Благодаря
Edit:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
ThisWorkbook.ActiveSheet.Move After:=Sheets(wst.Index)
End Sub
Это не получает новый лист непосредственно после того, как "Лист1" либо.
Почему бы не использовать 'wst.copy после: = wst'? – glh
Что сказал @glh. У вас уже есть 'wst' как переменная Worksheet. Просто используйте это для аргумента 'After' :) –
' wst.copy после: = wst' и 'wst.copy после: = Листы (« Лист1 »)' дают те же результаты. Мой новый лист появляется после скрытого листа, а не сразу после «Sheet1» – Jonathan