如何不打開Excel文件刪除行?
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
‘獲取文件
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來刪除行,但使用代碼打開工作簿,執行操作,保存操作結果,然后關閉工作簿,讓用戶覺得根本沒有打開過工作簿,這也是常用的技巧。