Так что вот с чего начать.
Во-первых, поскольку лист защищен, вам необходимо снять защиту, прежде чем можно будет что-либо копировать. Приведенный ниже код показывает вам, как это сделать, и использует strPassword
в качестве переменной, содержащей пароль. Поскольку в вашем случае лист уже защищен, вы должны сначала снять с него защиту, затем выполнить операцию копирования, а затем снова защитить ее.
В общем случае вы можете использовать range.copy
с range.pastespecial
для копирования данных в любое место. Для копирования в новую рабочую книгу вы можете использовать Workbooks.add
, в противном случае просто укажите путь к файлу другой рабочей книги
Sub YourSub()
Dim ws As Worksheet: Set ws =Worksheets("YourSheet")
Dim strPassword As String: strPassword = "YourPassword"
Set NewBook = Workbooks.Add ' OR the workbook path
ws.Unprotect Password:= strPassword
ws.Range("A1:AA100").Copy
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
NewBook.SaveAs FileName:= ' Insert FilePath/ FileName here
ws.Protect Password:= strPassword
End Sub
Это некоторая общая информация о том, как вы собираетесь копировать диапазоны из защищенной рабочей книги в другую рабочую книгу. Чтобы сделать это для определенных стран, вы можете создать таблицу или использовать именованные диапазоны (используя менеджер имен или в самом VBA). Затем вы можете указать конкретные диапазоны, используя if.. elseif.. else.. end if
или метод select case
, при этом ваш список дел указывает на диапазон, содержащий все страны, которые будут скопированы.
Надеюсь, это было полезно в качестве краткого обзора