VBA:如何删除具有不同文件的特定文件夹中的列“A”,其中工作表名称有所不同

我有一个文件夹在我的桌面有或多或less的2000个csv文件。 这些文件只有1个“图纸”,但图纸名称有所不同。 唯一类似的是,它以“Tankard”开头。

在这张表中,我只需要删除Column A并保存所有2000个文件。 它只是我的第二个月在工作中探索vba自动化。 如果有人能帮助我,我将不胜感激。 提前致谢。

脚本:

 Sub Tank() Dim wb As Workbook Dim myPath As String Dim myfile As String Dim myExtension As String Dim SheetName As String 'Optimize Macro Speed Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual SheetName = "Tankard*" myPath = "\\ph00winfdfs01p\shares\JoeyC\documents\Roaming\Windows\Desktop\Tank\" If myPath = "" Then GoTo ResetSettings 'Target File Extension (must include wildcard "*") myExtension = "Tankard*.csv" 'Target Path with Ending Extention myfile = Dir(myPath & myExtension) 'Loop through each Excel file in folder For i = 1 To 201 Set wb = Workbooks.Open(Filename:=myPath & myfile) ';;;;;;;;;;;;;;WRITE YOUR CODE HERE Sheets("SheetName").Select Columns("A").Select Selection.Delete wb.Close SaveChanges:=True Next i 'Get next file name myfile = Dir 'Message Box when tasks are completed MsgBox "Task Complete!" ResetSettings: 'Reset Macro Optimization Settings Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 

试着了解发生了什么。 这个小组目前做的是打开Dirfind的第一个工作簿,打开它201次,并删除第一列表“Sheetname”每次。

 Sheets("SheetName").Select 

这将select名称为"Sheetname" ,而不是将名称设置为stringSheetname的名称。 如果有的话,应该是Sheets(Sheetname)但是通配符在这里不起作用。

现在让我们看看你正在努力实现的过程。

 myfile = Dir(myPath & myExtension) 

myfile设置为与您的模式匹配的第一个文件...\Tankard*.csv

 Set wb = Workbooks.Open(Filename:=myPath & myfile) 

打开文件,现在可以通过wb访问工作簿

要删除工作表上的第一列,我build议select所有的东西,但直接删除范围:

 wb.Sheets(1).Columns(1).Delete 'If you want to actually delete the column wb.Sheets(1).Columns(1).Clear 'If you want to just remove the values 

正如你所看到的,根本不需要表格的名字。 现在保存工作簿:

 wb.Close SaveChanges:=True 

现在您可以使用Dirmyfile设置为下一个文件名:

 myfile = Dir 

然后重复,直到没有更多的文件(在这一点上, Dir将返回"" 。最好的办法是使用一个While循环,例如像这样

 While myfile <> "" 'Do stuff here Wend '(While End) 

For循环的优点是不需要知道文件夹中文件的确切数量。

我会把它留给你,一起打补丁。