VBA Excel ...如何保留最新的5个备份并删除其余部分?

时间:2017-07-11 06:34:34

标签: excel vba excel-vba

  • 我想留下最新的7个备份并删除其余的... &安培;我想保留每个月的第一个备份...... &安培;该程序应该OpenAsReadOnly备份而不要求!

这是我的代码:

<script type="text/javascript">
        var tableToExcel = (function() {
            var uri = 'data:application/vnd.ms-excel;base64,'
                , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
                , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
                , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
            return function(table, name) {
                if (!table.nodeType) table = document.getElementById(table)
                var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
                window.location.href = uri + base64(format(template, ctx))
            }
        })()
    </script>

1 个答案:

答案 0 :(得分:1)

要解决备份轮换问题,您可以执行以下操作。使用WEEKDAY函数,而不是在其中编写包含月份和日期的文件。然后,每次打开文件时都会覆盖每日备份,并在上周/ 7天内备份 解决每月备份问题您只需使用月份即可。当新月来临时,将启动新备份 此解决方案的唯一问题是每次打开文件时都会覆盖最后一次备份 如果您确实需要先进行备份,那么您必须检查文件是否存在。

但也许更好的解决方案是在您的文件外部编写脚本并按计划运行备份。在午夜。它甚至可以是你熟悉的vbscript。