乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何用<em>excel</em>代码批量删除多个<em>excel</em&

如何用<em>excel</em>代码批量删除多个<em>excel</em&

作者:乔山办公网日期:

返回目录:excel表格制作


就是做一个宏,里边弄两个循环,一个循环是行,内里再来个循环就是列,每行的每列
就能做到每个单元格,测试单元格数据,是否与前边的相同,进行相应处理,说穿了就是你要学会遍历单元格,然后就会有办法了

(1)把这100个excel文档放在同一个文件夹;

(2)在其他任何地方新建一个excel,名称任意;

(3)在新建的这个excel里添加以下代码(用你的代码改的);

(4)在“宏安全性”设置里勾上“信任对VBA工程对象模型的访问”,然后运行即可


Sub 批量删除vba代码()
'On Error Resume Next  '这里把它注释是为了测试用,你可以把它撤销注释

Dim xlsApp As New Excel.Application  '这里其实可以不用这个的,不过你用了我e68a84e799bee5baa6361就不改了
Dim xlsWorkBook As Excel.Workbook
 Dim vbPro
 Dim sFileName As String  '你都没定义sFileName怎么用?
 Dim Addr As String
 Addr = InputBox("请输入文件所在的地址:") & "\"

xlsApp.DisplayAlerts = False '这个让程序运行的时候没那么烦
xlsApp.ScreenUpdating = False
 sFileName = Dir(Addr) '这个是批量查找用的
 
 '接下来是批量处理
Do Until sFileName = ""
    Set xlsWorkBook = xlsApp.Workbooks.Open(Addr & sFileName)
    'Set vbPro = ActiveWorkbook.VBProject  '如果要批量删除,这里一定不能用activeworkbook!
    Set vbPro = xlsWorkBook.VBProject
    With vbPro
     For i = .vbcomponents.Count To 1 Step -1
    LCount = .vbcomponents(i).CodeModule.CountOfLines
    .vbcomponents(i).CodeModule.DeleteLines 1, LCount
    If Val(.vbcomponents(i).Type) < 100 Then  '这里判断工作表里有没有代码
    .vbcomponents.Remove .vbcomponents(i)
    End If
    Next i
    End With
    xlsWorkBook.Save
    xlsWorkBook.Close
    'xlsApp.Quit  这句不能这样用,只要关掉workbook就行了,不然所有的excel会全关掉。
    sFileName = Dir
Loop
xlsApp.ScreenUpdating = True
xlsApp.DisplayAlerts = True
MsgBox "删除完成!"
End Sub

亲,是这个意思么?

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。

 

 

Sub sc()
Dim d
Set d = CreateObject("Scripting.Dictionary")
Dim i, r As Long
r = Cells(Rows.Count, "A").End(xlUp).Row
For i = r To 1 Step -1
    d(Range("A" & i).Value) = d(Range("A" & i).Value) + 1
    If d(Range("A" & i).Value) > 1 Then Rows(i).Delete
Next
Set d = Nothing
End Sub


VBA不难,试着去写,很多问题都会迎刃而解,稍微有的函数、过程调用不知道参数,屏幕上都会提示的。

本贴问题就两个知识点,一是扫描文件夹,使用DIR即可,框架代码如下:

dim pt$, fn$ '路径和文件名
pt = "c:\test\"
fn = dir(pt, "*.xls")
while fn<>""
    '进行处理文件
    '打开文件、修改内容、保存关闭
    '查找下一个文件
    fn = dir
end while

二是删除表内一行,调用RANGE.DELETE即可,示例代码如下:

dim wb as workbook, st as worksheet
set wb = workbooks.open(pt & fn)
for each st in wb.sheets
    st.range("5:5").delete '删除所有表中的第5行
next st
wb.save
wb.close

相关阅读

  • <em>EXCEL</em> <em>VBA</em>删除相同内容列-e

  • 乔山办公网excel表格制作
  • 工具/原材料EXCEL2016、电脑抄。1、打开电脑找到并点击EXCEL2016版的软件;2、打开EXCEL软件以后,为了更好的示范,先在文档内新建并选中有重复项的内容;3、选中需要删除重复的内容以
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网