首页 > 解决方案 > 如何删除另一个 Excel 文件的第一行

问题描述

我想删除用对话框打开的文件的第一行。每个文件只有一张。所以我想删除每个打开的文件的第一张纸上的每一行。

我想这样做的原因是因为我导出了数据库表(我显然试图不使用标题导出)并且为了解析它们,我想删除作为标题的第一行。

在每个打开的文件上,我调用我的函数Parsing(),其中我提供了 2 个参数:2 Workbook(一个是我用来触发函数的 Excel,第二个是文件夹中找到的每个文件)。

让我知道是否需要提供打开文件的第一个函数,但我认为不需要它,因为它工作正常。

在打开的每个文件上,我应用以下代码:

Sub Parsing(ByVal wbInit As Workbook, ByVal wb As Workbook)
    Dim sh As Worksheet

    For Each sh In wb.Sheets

        wb.Sheets(1).Rows(1).Delete

        If wb.Name Like "*bpe*" Then
            MsgBox "bpe"
        End If

        If wb.Name Like "*cable*" Then
            MsgBox "cable"
        End If

        If wb.Name Like "*pt*" Then
            MsgBox "pt"
        End If

    Next sh

End Sub

es 在这里Msgbox测试我是否真的打开了文件,它也可以正常工作。

但是,当我重新打开文件时,第一行不会被删除。

这是调用该过程的代码:

Sub ouverture_dossier()
    Dim wbInit, wbExtra As Workbook
    Dim dossier, nomFichier As String

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    Set wbInit = Workbooks(wbInitStr)
    Call Initialisation

    Application.FileDialog(msoFileDialogFolderPicker).Show
    dossier = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) & "\"
    nomFichier = Dir(dossier & "*.xls*")

    Do While nomFichier <> ""
        If Not IsWorkbookOpen(nomFichier) Then
            Workbooks.Open Filename:=dossier & nomFichier
        End If

        Set wbExtra = Workbooks(nomFichier)
        wbExtra.Activate

        Call Parsing(wbInit, wbExtra)

        wbExtra.Close False
        nomFichier = Dir

    Loop

    wbInit.Activate
    Sheets(shBrouillon).Select

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

我想从中吸取教训,所以,如果可能的话,向我解释我在这里做错了什么,或者我的方法是否缺乏洞察力。

标签: excelvba

解决方案


这将起作用

Private Sub first_line_removal()

    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Rows(1).EntireRow.Delete
    Next ws

End Sub

请注意,应用程序的数字顺序不会改变。我的意思是:当您打开应用程序(除非隐藏)时,第一行将始终被枚举为[1].

这里的区别是,之前的第一行被删除了,之前的第二行被移到了现在的第一行。


同样正如@Pᴇʜ 在评论中正确指出的那样,显然您需要在关闭工作簿之前保存它,否则更改将丢失。

ThisWorkbook.Save

推荐阅读