Ситуация такова:
У меня есть лист Excel с рабочей тетрадью ввода для заполнения личных вещей и рабочей тетрадью на каждый месяц. Теперь есть кнопка, когда пользователь хочет иметь новый лист Excel по причине смены рабочего места.
Так, например: г-н Дин заполнил свой ежедневный рабочий день до 15 апреля. Теперь он переходит в другое место и нажимает кнопку, чтобы изменить рабочее место. Он получает новый лист Excel, который выглядит точно так же, как и раньше, заполненный данными, которые он записал с первого листа (копировать/вставить из vba-скрипта). Существующие записи (ячейки) до 15 апреля также заблокированы, чтобы он не мог их редактировать. Он продолжает записывать свои часы на 16 апреля и так далее.
Я думаю, что будет лучше, если второй лист Excel будет создан с помощью макроса (копирование/вставка).
Имя первого листа: лист1 Имя второго листа: лист2
Итак, мой код пока не работает:
Sub Test()
Dim ws1 As Worksheet
Set ws1 = sheet1.Worksheets("Master")
ws1.Copy sheet2.Sheets(Sheets.Count)
End Sub
Это скопирует весь лист?
Этот код предназначен для защиты паролем рабочих книг. Как я могу заблокировать только отдельные ячейки до 15 апреля? Итак, как я должен прочитать дату?
Sub sbProtectAllSheets()
Dim pwd1 As String, pwd2 As String
pwd1 = InputBox("Please Enter the password")
If pwd1 = "" Then Exit Sub
pwd2 = InputBox("Please re-enter the password")
If pwd2 = "" Then Exit Sub
'Check if both the passwords are identical
If InStr(1, pwd2, pwd1, 0) = 0 Or _
InStr(1, pwd1, pwd2, 0) = 0 Then
MsgBox "You entered different passwords. No action taken"
Exit Sub
End If
For Each ws In Worksheets
ws.Protect Password:=pwd1
Next
MsgBox "All sheets Protected."
Exit Sub
End Sub
Или у вас есть другие предложения?
Приветствует Дык
Sub Test()
, вы спрашиваете, будет ли это работать, а не утверждаете, что это не работает. Я рискну предположить, что это не сработает, потому что выглядит очень, очень неправильно, но я не знаю, какие глобальные переменные вы могли установить за пределамиSub
, которые вы нам показали (или если у вас естьOption Explicit
поставил - надо). Пожалуйста, отредактируйте свое сообщение, чтобы включить точное сообщение об ошибке, которое вы получаете, если вы хотите увеличить шансы на получение хорошего ответа. - person FreeMan   schedule 10.07.2015