问:我有1000多个Excel文件(扩展名xlsx),它们都只有一个工作表,并且工作表结构相同。我想在不打开这些Excel文件的情况下删除工作表的第一行到第三行。怎么才能快速做到这一点?
答:您可以使用以下VBA代码:
子删除行()
声明一个变量。
将文件路径设为字符串
作为字符串变暗
将名称作为字符串变暗
将WB调暗为工作簿
获取文件夹路径。
文件路径=活动工作簿。小路
fName=活动工作簿。名字
'添加反斜杠'
如果右$(文件路径,1) " "那么
文件路径=文件路径" "
如果…就会结束
去拿文件。
fFile=Dir(文件路径" * "。xlsx”)
遍历文件夹中的文件。
当“fFile”时执行
忽略当前工作簿。
如果是,那么
设置工作簿。打开(文件路径fFile,更新链接:=0)
活动工作簿。工作表(1)。行(“1:3”)。删除Shift:=xlUp
申请。显示警报=假
活动工作簿。救援
活动工作簿。关闭
如果…就会结束
fFile=Dir
环
末端接头
在代码中,Dir函数用于获取文件。只要不是代码所在的Excel工作簿文件,就会打开工作簿,执行删除第1行到第3行的操作,然后保存结果,关闭工作簿。
请注意,默认情况下,由代码操作的工作簿与代码所在的工作簿位于同一文件夹中。
虽然要求不要打开Excel删除行,但是使用代码打开工作簿,执行操作,保存操作结果,然后关闭工作簿,也是一种常见的技巧,让用户觉得工作簿根本没有打开过。