Q:我有大约1000多个Excel文件(扩展名为xlsx),这些文件都只有1个工作表且具有相同的工作表结构,我想在不打开这些Excel文件的前提下删除其工作表的第1至3行,如何快速实现?
A:可以使用下面的VBA代码:
Sub DeleteRows()
‘声明变量
Dim FilePath As String
Dim fFile As String
Dim fName As String
Dim WB As Workbook
‘获取文件夹路径
FilePath = ActiveWorkbook.Path
fName = ActiveWorkbook.Name
‘添加反斜杠
If Right$(FilePath, 1) <> “\” Then
FilePath = FilePath & “\”
End If
‘获取文件
excel图表技巧:显示数据有效性列表
数据有效性(即“数据验证”)是Excel中常使用的一项功能。然而,在使用数据有效性创建好下拉列表后,我们不能够随便修改列表中的字体或字体大小。如果工作表显示比例较小,那么数据有效性列表中的内容也会相应地变小,这样就很难看清楚里面的内容,如下图1所示。 图1 我们可以使用一点小技巧,用VBA代码使得当用户选择数据有效
fFile = Dir(FilePath & “*.xlsx”)
‘遍历文件夹中的文件
Do While fFile <> “”
‘忽略当前工作簿
If fFile <> fName Then
Set WB = Workbooks.Open(FilePath& fFile, UpdateLinks:=0)
ActiveWorkbook.Sheets(1).Rows(“1:3”).Delete Shift:=xlUp
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
fFile = Dir
Loop
End Sub
在代码中,使用Dir函数来获取文件。只要不是代码所在的Excel工作簿文件,将打开该工作簿,执行删除第1至3行的操作,然后保存结果并关闭该工作簿。
注意,代码默认所要操作的工作簿与代码所在的工作簿在同一文件夹中。
虽然要求不打开Excel来删除行,但使用代码打开工作簿,执行操作,保存操作结果,然后关闭工作簿,让用户觉得根本没有打开过工作簿,这也是常用的技巧。
给图表数据标签添加表示增加或减少的箭头标记
使用一些技巧,我们可以给图表数据标签添加表示增加或减少的箭头标记,让图表的表现力更加丰富。 示例数据如下图1所示。 图1 使用图1中的数据区域A3:A9和C3:C9,绘制一个表示2018年销售量的柱状图,如下图2所示。 图2 在图1所示的工作表单元格D3中输入公式: =(C3-B3)/B3 并下拉至单元格