如何编写宏代码使excel第一次打开后开始计时,计时超过10天后,再次打开此Excel时执行某段代码,该代码为FOR 时如何修改?见附件
Private Sub Workbook_Open()
For j = 1 To Sheets.Count
If Sheets(j).Name = "abcdaacdefg" Then
If Sheets(j).[a1] + 0 <= Date Then
For i = 1 To Sheets.Count
Worksheets(i).Visible = True
Worksheets(i).Unprotect "12345678"
Worksheets(i).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells(1, 1).Select
Worksheets(i).Protect "12345678"
If Worksheets(i).Name = "中国人" Then
Worksheets(i).Visible = False
End If
Next i
Worksheets(1).Select
Cells(1, 1).Select
ActiveWorkbook.Save
Exit Sub
End If
Next j
Set sh = Sheets.Add(after:=Sheets(Sheets.Count))
sh.Name = "abcdaacdefg"
sh.Visible = False
sh.[a1] = Date
End Sub
各位亲能否帮我直接修改
能否帮我直接修改呢。
追答看你的宏代码,无外乎是通过比对工作表“abcdaacdefg”A1单元格中的数据与当前系统的日期。若A1单元格中的日期小于等于当前日期(你可能在A1中设定了一个使用的截止日期),即到了某日,则所有工作表解保护,然后在每个工作表中进行复制,选择性粘贴:数值的操作(也许,你的文件中,有大量的公式)。然后重新每个表加保护,然后将某个名为“中国人”的表隐藏。
而每次你的工作簿打开,都新增一个表,且命名为“abcdaacdefg”——这个操作会导致错误,对吧?接下来的代码,也不必说了。
总结下来:你无外乎想实现:当系统时间到了某日后,将文件中的公式,全部毁去,仅留数值。呵呵,版权保护?
那么,用我写的代码。
功能是:1、第一次启动,会记录系统时间。
2、然后每次打开该文件,都比对日期,若使用超过10天,则文件加密成.xlsm格式——.xlsm格式和.xlsx格式的文件解密,至今没有凶器
3、原始文件自删除
最后要说的是,其实,这些都是瞎折腾。用户不启用宏,你啥都玩儿不了。你还得设计精致些。
另外,VBE工程密码,也是可解的。
所以,我提供的方案,也有漏洞。
代码中少了一句保存文件的代码,现在添上
Private Sub Workbook_Open()另外,在 Kill f '删除源文件 之后,添一句
application.quit