Положението е следното:
Имам Excel лист, с входна работна книга за попълване на лични неща и за всеки отделен месец работна книга. Сега има бутон, когато потребителят иска да има нов Excel лист, поради промяна на работното място.
Така например: г-н Дийн е попълнил дневния си час работа до 15 април. Сега той се премества на друго място и натиска бутона, за да промени работното място. Той получава нов Excel лист, който изглежда точно както преди, попълнен с данните, които е написал от първия лист (copy/paste от vba-sript). Съществуващите записи (клетки) до 15.април също са заключени, така че той не може да ги редактира. Той продължава да си записва часовете за 16. Април и т.н.
Мисля, че е по-добре, ако вторият лист на Excel се създаде от макроса (копиране/поставяне).
Име на първия лист: sheet1 Име на втория лист: sheet2
Така че кодът ми не работи досега:
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
Или имате някакви други предложения?
Поздрави Duc
Sub Test()
вие питате дали това ще проработи, а не заявявате, че не става. Ще си позволя да предположа, че няма да работи, защото изглежда много, много грешно, но не знам какъв вид глобални променливи може да сте задали извънSub
, който ни показахте (или ако иматеOption Explicit
комплект - трябва). Моля, редактирайте публикацията си, за да включите точните съобщения за грешка, които получавате, ако искате да увеличите шансовете за получаване на добър отговор. - person FreeMan   schedule 10.07.2015