您好,MT。您知道,几年前有一个脚本专家及其家人到奥兰多的暴风雪滩水上公园度假。在那儿,该脚本专家直冲下当时被称为世界上最高最快的滑水道 Summit Plummet。关于那次经历,该脚本专家(他的儿子激他冲下滑道,当时几乎没有回旋的余地)印象最深的是,他花了大约 45 分钟时间排队,接着又听了大约一分钟的安全说明,而真正体验滑水感觉的时间可能最多不过 3 到 4 秒钟。
然而,从好的方面来看,绝不会有“脚本儿子”叫他胆小鬼了。至少是对于玩滑水道,不会这么叫他。
当我们坐下来编写脚本解决您的问题时,我们想起了这样的经历 - 在您了解到一件事情之前,您已经做过了大量的准备工作。这是因为,除非我们有包括几种不同类型格式的电子表格,否则向您展示如何删除电子表格的所有格式并无太大意义。因此,我们编写了一组代码来创建一个格式化的电子表格。然后,我们发现只需要一行代码即可清除所设置的全部格式。
听起来有点让人索然寡味。
该脚本如下:
Const xlHAlignCenter = -4108
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)
For i = 1 to 14
objExcel.Cells(i, 1).Value = i
objExcel.Cells(i, 2).Interior.ColorIndex = i
Next
Set objRange = objWorksheet.UsedRange
objRange.HorizontalAlignment = xlHAlignCenter
objRange.Font.Bold = True
Wscript.Sleep 5000
objRange.ClearFormats
需要注意的是,我们将忽略脚本中的大部分代码行;因为包括这些代码行只是为了给我们提供一个待处理的格式化电子表格。如果您想要了解 Microsoft Excel 脚本编写的更多信息,可以查看 Office Space 存档;在那里您可以找到一些链接,它们指向各种有关如何对 Excel 编写脚本的文章。
然而,我们将至少简短介绍一下此脚本的作用。首先,我们创建一个 Excel 的实例,然后新建一个工作簿和工作表。我们在此工作表上添加一些数字并更改一组单元格的背景颜色,然后就运行到下面这行代码:
Set objRange = objWorksheet.UsedRange
我们今天目标是编写一个脚本来删除整个电子表格的所有格式;您可能想到了,要达到此目的,最简单的方法是首先要选择整个电子表格。这就是 UsedRange 的作用:它会提供一个 Range 对象,此对象会包含已使用的电子表格部分。例如,假定在单元格 A1 和 G37 中存在数据;则已使用的范围就由单元格 A1、G37 以及两者之间的所有单元格组成。显然,这是一个获取“已使用的”单元格的便捷方法。
获得此范围后,我们立即加以利用,使用以下两行代码加粗并居中电子表格上的所有文本:
objRange.HorizontalAlignment = xlHAlignCenter
objRange.Font.Bold = True
这仅仅向混合的格式又多添加了一点格式。接下来,我们将脚本暂停 5 秒(5,000 毫秒)。我们不是必须这么做,只是给您一个机会在脚本起作用并将其删除之前看一下所有这些漂亮的格式。
那么我们是如何删除所有这些格式呢?方法如下:
objRange.ClearFormats
注意:我们没有开玩笑:只用了一行代码。使用 Range 对象(此对象包含已使用的范围),我们只需要调用 ClearFormats 方法,即可删除所有格式。呵呵,我们已经告诉过您,这有点令人索然寡味。但从好的方面来看,如果您运行此脚本,没人能叫您笨蛋;至少对于删除 Excel 电子表格的所有格式来说,不能这么叫。