excel 宏 删除一个文件夹下多个excel第一个sheet的最后一行

119 阅读1分钟
Sub DeleteLastRowFromFirstSheetInFolder()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object

    ' 设置文件夹路径
    folderPath = "F:\两项补贴\1"  ' 替换为你的文件夹路径

    ' 创建文件系统对象
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(folderPath)

    ' 遍历文件夹中的每个文件
    For Each objFile In objFolder.Files
        ' 检查文件是否为 Excel 文件
        If LCase(Right(objFile.Name, 4)) = ".xls" Or LCase(Right(objFile.Name, 5)) = ".xlsx" Then
            ' 打开工作簿
            Set wb = Workbooks.Open(objFile.Path)
            
            ' 获取第一个工作表
            Set ws = wb.Sheets(1)
            
            ' 获取最后一行的行号
            lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            
            ' 删除最后一行
            If lastRow > 1 Then
                ws.Rows(lastRow).Delete
            End If
            
            ' 保存并关闭工作簿
            wb.Close SaveChanges:=True
        End If
    Next objFile

    ' 释放对象
    Set objFolder = Nothing
    Set objFile = Nothing
    Set objFSO = Nothing
End Sub