精华内容
下载资源
问答
  • 1、先说第一种情况:遍历所有工作表,是否存在某一个关键词 Sub 搜索确认() Dim sht As Worksheet, a For Each sht In Worksheets sht.Activate Set a = Cells.Find(What:="测试") 'Debug.Print(),可

    我这里是关键词是 "测试",逻辑是:现实情况中,不方便/不允许使用On Error的情况下,我们可换一个思路,可以判断是不是Nothing

    业务场景(代码诞生原因):因为文件夹内有一堆表格,在要这一堆表格里面找是否含有别的厂家的名字...我有一百多个表格,一个个打开累死啦,所以就写了这个,替我进行搜索

    说明文档:

    1、仅对文件进行搜索,不会改动文件,保留文件完整性

    2、中间加了分号,格式为:(工作簿;工作表;是否找到)加分号的意义在于方便分列,容易看出哪个表存在关键词

    3、没有设定屏幕锁定,如果别人在你面前,屏幕不停闪烁运作,可以显得你很牛逼...

    F、如果需更改关键词,直接把 “测试” 改成你需要的即可

    5、如果需要其他的搜索条件,如搜索值,搜索公式等等,可以先录制宏,将Find代码替换掉即可~有问题亦可留言,看到会协助处理,谢谢~

    6、目前仅适用于单层文件夹,不适合文件夹内嵌套文件夹的文件操作...递归我还不太会...

    7、敲重点:请留意,因为个人本身业务场景情况需要,考虑到隐藏,和筛选等格式不规范,可能造成的影响,所以程序会取消筛选和隐藏

    1、先说第一种情况:遍历所有工作表,是否存在某一个关键词

    Sub VBA小程序_针对本工作簿所有工作表_搜索相关内容()
        Dim sht As Worksheet, a
        For Each sht In Worksheets
            sht.Activate
            '取消筛选,取消隐藏
            sht.AutoFilterMode = False
            Cells.EntireRow.Hidden = False
            Cells.EntireColumn.Hidden = False
            
            Set a = Cells.Find(What:="测试")
            'Debug.Print(),可以在立即窗口中查看返回内容,如果找不到,可以百度一下:VBA立即窗口怎么看,一看就会了?
            If Not a Is Nothing Then
                Debug.Print (ActiveWorkbook.name & ";" & sht.name & ";找到")
            Else
                Debug.Print (ActiveWorkbook.name & ";" & sht.name & ";找不到")
            End If
        Next
    End Sub
    

    2、第二种情况,再说遍历所有文件夹内所有文件,循环判断文件夹里 所有文件里面的 所有Sheet(工作表)是否存在某一个关键词(会弹窗提示用户选择文件夹路径,目前仅适用于单层文件夹,对于文件夹内还有文件夹的情况,暂时不适用

    
    Sub VBA小程序_遍历文件夹内所有文件_搜索相关内容()
        Dim myPath$, myFile$, myPath1$, myPath2$, WB As Workbook, new_book As Workbook, yes_no '这个$ 是相当于定义字符串
        
        '调用函数,获取用户选择的文件夹,并且在最后加上一个反斜杠,用于下面的文件列表获取
        myPath2 = ChooseFolder  '这里的路径是没有加入最后的"\"的
        myPath = myPath2 & "\"
        
        myPath1 = InStrRev(myPath2, "\") '从右向左查找"\",返回其所在的位置,返回值是一个数字,但是最后会变成一个字符串,所以定义的时候也定义了一个字符串
        If myPath1 = 0 Then
            myPath1 = ""    '如果找不到"\",那么就说明用户选择是主硬盘,如:C:\\等,这样就 返回空值
        Else
            myPath1 = Right(myPath2, Len(myPath2) - myPath1) & "_" '如果不是空值,那么就直接可以使用Right提取,使用最开始没有"\"的myPath2这个变量,
        End If
        
        myFile = Dir(myPath & "*.xls*") '依次找寻指定路径中的*.xls,或者xlsx文件
        
        Do While myFile <> "" '当指定路径中有文件时进行循环
            If myFile <> ThisWorkbook.name Then     '如果我们这个宏文件在需要处理的文件夹之中,这个判断就会跳过下面的操作
                Set WB = Workbooks.Open(Filename:=myPath & myFile, UpdateLinks:=0) '打开符合要求的文件,并且如果遇到需要更新链接的时候,默认不更新
                Call 搜索确认
                WB.Close 0  '不保存关闭文件
            End If
            myFile = Dir '找寻下一个*.xls,或者xlsx文件
        Loop
        Set WB = Nothing    '释放变量内存
        MsgBox ("兄台,已完成")
    End Sub
    
    Public Function ChooseFolder() As String    '定义函数,用于下面的调用
        '定义并新建一个对话框对象
        Dim dlgOpen As FileDialog
        Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
        '如果当前没有对话框显示,就让他弹出对话框
        If dlgOpen.Show = -1 Then ChooseFolder = dlgOpen.SelectedItems(1)
        Set dlgOpen = Nothing
    End Function
    
    Function 搜索确认()
        Dim sht As Worksheet
        For Each sht In Worksheets
            sht.Activate
            '取消筛选,取消隐藏
            sht.AutoFilterMode = False
            Cells.EntireRow.Hidden = False
            Cells.EntireColumn.Hidden = False
            
            Set a = Cells.Find(What:="测试")
            If Not a Is Nothing Then
                Debug.Print (ActiveWorkbook.name & ";" & sht.name & ";找到")
            Else
                Debug.Print (ActiveWorkbook.name & ";" & sht.name & ";找不到")
            End If
        Next
    End Function

     

    展开全文
  • VBA常用技巧

    2014-12-21 16:39:28
    12-2 判断单元格是否存在数据有效性 12 12-3 动态的数据有效性 12 12-4 自动展开数据有效性下拉列表 12 技巧13 单元格中的公式 12 13-1 在单元格中写入公式 12 13-2 检查单元格是否含有公式 12 13-3 判断单元格公式...
  • Excel_VBA教程

    2014-09-22 11:36:34
    3.检查文件或文件夹是否存在(DIR函数) 145 4.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    12-2 判断单元格是否存在数据有效性 41 12-3 动态的数据有效性 41 12-4 自动展开数据有效性下拉列表 43 技巧13 单元格中的公式 44 13-1 在单元格中写入公式 44 13-2 检查单元格是否含有公式 45 13-3 判断单元格公式...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    目 录 一、VBA语言基础...................................................................................................................1 第一节 标识符....................................................
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    3.检查文件或文件夹是否存在(DIR函数) 145 4.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    一、VBA语言基础...................................................................................................................1 第一节标识符...........................................................
  • 84.判断一个文件是否在使用中 85.列出档案详细摘要信息 86.获取菜单ID编号及名称列表 87.状态列动态显示文字 88.取得一个文件的路径2 89.取得一个文件的路径3 90.取得Activecell的栏名 91.取得单元格中指定字符前的...
  • 函数作用:判断表是否存在...........................74 '53.函数作用:角度转弧.................................74 '54.函数作用:比较相同的字符串.........................75 '55.函数作用:对选定的数组进行排序...
  • │ │ 技巧225 确定查找是否存在.xls │ │ 技巧226 根据行列条件返回结果.xls │ │ 技巧227 返回引用的单元格地址.xls │ │ 技巧228 逆向查询数据.xls │ │ 技巧229 模糊查找数据.xls │ │ 技巧230 返回...
  • Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...
  •  如果使用Excel时你也存在上述问题,建议检讨一下自己的Excel应用能力是否足以应对当前的工作。也许花点时间好好学习一下Excel会对你今后的工作大有帮助。  《绝了!Excel可以这样用:职场Excel效率提升秘笈》是...
  • autocad命令全集

    2008-10-24 21:46:23
    108 FIND   查找与替换文件 109 FOG   三维渲染的雾度配置 110 GRAPHSCR   在图形窗口和文本窗口间切换 111 GRID   显示栅格 112 GROUP G或-G 创建一个指定各称的目标选择组 113 HATCH –H 通过命令行进行区域...
  • 且可以定义复框是否可以打印、与单元格链接等等 【报表分栏工具箱】:Word有分栏功能,本工具使Excel也具有同类功能。当数据列数太少浪费打印纸张时,可以用本工具分成多栏再打印 【制作工资条】:瞬间将工资明细...
  • (4)实现Excel2003与Excel2007/2010的完美兼容, VBA工程免密查看,锁定鼠标,字符加密,文件改名,修改文件时间增益功能全备. (5)多项技术创新, 实现了DLL的封装, 支持多语言显示, 支持繁简体系统. 工具文件解压后约40...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

vba查找文件是否存在