Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3125|回复: 10

[已解决]如何实现两次IF判断?

[复制链接]
发表于 2011-4-6 08:43 | 显示全部楼层 |阅读模式
下面的代码可以批量设置001文件夹下所有XLS文件为“禁用宏就关闭文件”,但如果文件夹里面已经有设置好的文件,就会出错,请问如何用IF判断里面是否存在工作表"Macro",如果有就跳过这个文件,继续往下,如
If xs.Name = "Macro" Then
        wb.Close True
        Exit Sub
但我不知道如何加!





Sub test1()    '批量设置禁用宏则关闭文件
    Dim wb As Workbook
    Dim i%
    Dim err '变量声明
    Application.ScreenUpdating = False    '关闭屏幕更新,防止闪屏、加快代码运行
    Application.DisplayAlerts = False
    With Application.FileSearch    '建立一个搜索
    .NewSearch    '新搜索
    .LookIn = "C:\Documents and Settings\Administrator\桌面\001"  '设定搜索的范围
    .FileType = msoFileTypeExcelWorkbooks    '查找所有Excel类型的文件
    .Execute
        For i = 1 To .FoundFiles.Count    '逐个处理找到的文件列表中的每个工作簿
        Set wb = Workbooks.Open(.FoundFiles(i))     '打开它
               
        wb.Sheets.Add Type:=xlExcel4MacroSheet '插入宏表
        wb.ActiveSheet.Name = "Macro" '命名宏表
        Range("A2") = "=ERROR(TRUE,$A$6)" '在宏表中输入函数
        Range("A4") = "=RETURN()"
        Range("A6") = "=IF(ERROR.TYPE($A$3)=4)"
        Range("A8") = "FILE.CLOSE(FALSE)"
        Range("A9") = "RETURN()"
        Range("A10") = "ELSE()"
        Range("A11") = "ERROR(TRUE)"
        Range("A12") = "RETURN()"
        Range("A13") = "END.IF()"
        wb.ActiveSheet.Visible = 2 '隐藏宏表
        For Each xs In wb.Sheets '历遍工作表并定义名称
        If xs.Type = xlWorksheet Then
        xs.Select
        ActiveWorkbook.Names.Add Name:=xs.Name & "!Auto_Activate", RefersToR1C1:="=Macro!R2C1"
        End If
        Next xs
      
        wb.Close True    '保存并关闭打开的工作簿
        Next i    '继续打开下一个工作簿
        End With    '结束With语句块
        Application.ScreenUpdating = True    '重新打开屏幕更新
        Application.DisplayAlerts = True
        MsgBox "已处理完毕!", 64, "提示"
    End Sub
最佳答案
2011-4-6 10:28
加一行试一下:
On Error Resume Next
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2011-4-6 10:18 | 显示全部楼层
回复

使用道具 举报

发表于 2011-4-6 10:23 | 显示全部楼层
回复

使用道具 举报

发表于 2011-4-6 10:28 | 显示全部楼层    本楼为最佳答案   
加一行试一下:
On Error Resume Next
回复

使用道具 举报

 楼主| 发表于 2011-4-6 11:04 | 显示全部楼层
On Error Resume Next '忽略错误
谢谢wayy,能达到效果!不过,这样不是判断,而是继续增加一个宏表!能不能有判断的方法?
回复

使用道具 举报

 楼主| 发表于 2011-4-6 11:20 | 显示全部楼层
继续探索,继续研究
回复

使用道具 举报

发表于 2011-4-6 16:13 | 显示全部楼层
回复

使用道具 举报

发表于 2011-4-6 16:16 | 显示全部楼层
我还是小班,看不懂,但我会努力
回复

使用道具 举报

 楼主| 发表于 2011-4-7 08:08 | 显示全部楼层
继续研究,继续请教!
回复

使用道具 举报

发表于 2011-4-7 10:35 | 显示全部楼层
学习学习吖!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-17 04:03 , Processed in 0.289339 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表