excel - 如何删除另一个 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
我想从中吸取教训,所以,如果可能的话,向我解释我在这里做错了什么,或者我的方法是否缺乏洞察力。
解决方案
这将起作用
Private Sub first_line_removal()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Rows(1).EntireRow.Delete
Next ws
End Sub
请注意,excel应用程序的数字顺序不会改变。我的意思是:当您打开应用程序(除非隐藏)时,第一行将始终被枚举为[1]
.
这里的区别是,之前的第一行被删除了,之前的第二行被移到了现在的第一行。
同样正如@Pᴇʜ 在评论中正确指出的那样,显然您需要在关闭工作簿之前保存它,否则更改将丢失。
ThisWorkbook.Save
推荐阅读
- django - django 开发服务器不提供静态文件
- asp.net-mvc-5 - Autofac注册文件夹
- javascript - 提交按钮不调用 JQuery 验证第二次
- dropdown - 如何在角度 8 中的 ng-select 中使用键值对
- reactjs - 如何在 ReactJS 中使用多个 baseURL axios?
- asp.net-identity - 如何访问类库中的 User.Identity.GetUserId()
- c++ - 访问冲突读取位置(原始指针变量)
- java - 如何在Java中分解多赋值同一行?
- hibernate - @Transactional 中的 Spring Data JpaRepository saveAndFlush 不起作用
- here-api - 如何在 HERE 地图中删除默认 TTS 播放/音频