您好,TB。从您的电子邮件来看,您拥有用最新的值定期替换电子表格中的数据的脚本。电子表格已预先设置了格式,而您所要做的是删除所有旧值,从而为新值释放空间,但同时不删除任何格式。这样您只需插入新值而无需重复地进行复杂的格式设置。
我们希望它与下图所示的不完全一样,
那么我们能删除数据但保留这种……有趣的……格式吗?我们当然可以:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:/Scripts/Test.xls")
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.UsedRange.ClearContents
这个简单的小脚本以创建 Excel.Application 对象的实例开始,然后将 Visible 属性设置为 True(我们将 Visible 设置为 True 是为了能够看到屏幕上所发生的变化)。接下来,我们使用这两行代码打开文件 C:/Scripts/Test.xls 并创建对 Sheet1(该文件中的第一个工作表)的对象引用:
Set objWorkbook = objExcel.Workbooks.Open("C:/Scripts/Test.xls")
Set objWorksheet = objWorkbook.Worksheets(1)
要删除值而不影响格式只需一行代码:
objWorksheet.UsedRange.ClearContents
所有我们在此处所做的只是获取 UsedRange(代表其中含有数据的所有单元格)并调用 ClearContents 方法。正如您可能已经猜到的,ClearContents 将删除数据但会保留格式。
不可否认,它也不是我们所见过的印象最深刻的电子表格。但请观察当您向单元格添加数据时将发生的变化:
正如您所看到的,所有原来的格式都得到了保留。我们只需要添加数据,而电子表格将像先前一样美观。正如 Martha Stewart 所说的,这很棒。
当然,要是她看到了我们设置这个电子表格的方式,她很可能就不会这么说了。但是您知道我们是什么意思。
顺便说一下,如果您对 Microsoft Office 脚本编辑感兴趣,请一定查看 Office Space 专栏,该专栏每星期二和星期四在“脚本中心”发表。