精华内容
下载资源
问答
  • Excel VBA工作薄 5.3多个工作薄数据汇总2判断文件是否打开前景提要今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,文件夹批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一...

    Excel VBA工作薄 5.3多个工作薄数据汇总2判断文件是否打开

    前景提要

    今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,文件夹批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一个悬念,如果在合并工作薄的过程中,出现了如下的提示

    1f62496b84c512c1134dd96c69e70c11.png

    要如何处理,很多的人会说可以选择Y,没错这样操作的话,程序是可以继续执行的,但是如果不巧这个文件你刚刚修改了某些数据,你这个时候选择了Y,那么不好意思,你之前的所有改动都没有保存,你需要重新做一份新的数据,是不是很烦躁,所以在批量打开工作薄的时候,需要先判断当前工作薄是否已经被打开,如果被打开的话,我们就不要操作再次打开了。听起来似乎就是一个判断,没错,今天我们就来看看这个判断要如何来写。

    场景模拟

    我们还是继续之前模拟的数据来分析,假设我们我们现在已经打开了京东2这个工作薄,并对其中的某些数据进行了修改,我们如果还是继续执行上节的代码的话,就会出现提示文件被打开的提示,如果选择Y会导致我们修改的数据没有报错,如果我们选择N,则会提示程序运行被中断,程序结束

    8f6c1a57b926d633327558158e4faedd.png

    方法分析

    判断文件是否被打开,我们来想想如果是我们自己手工操作的话,我们如何判断工作薄是否被打开呢,当然就是看看当前已经打开的工作薄中是否有我们将要打开的工作薄,那么要如何去判断呢?很简单遍历所有已经打开的工作薄,然后读取已经被打开的工作薄,看看其中是否有我们要打开的那个工作薄,我们要判断天猫1的工作薄是否被打开,那么我们就遍历读取当前被打开的工作薄,看看他们的名字是否有叫做天猫1的,如果有,我们就不能再次执行打开的操作了,需要跳过打开的命令,直接读取数据,反之如果有没有天猫1的工作薄,我们既可以正常的打开操作了,来看下例子。

    代码区

    假设我们现在已经提前打开了京东2这个工作薄,并且更改了数据,但是还没有保存,我们执行下汇总程序

    b56176cb9185d27ed06bd2e3b82b02e9.png

    有报错,我们在调整下代码

    Sub test()Dim pathn, sth As Workbookpathn = ThisWorkbook.Pathf = Dir(pathn & "")Do While f <> "" If f <> "test.xlsm" Then For Each sth In Workbooks If sth.Name = f Then GoTo line End If Next sth Workbooks.Open (pathn & "" & f) End Ifline: f = Dir()LoopEnd Sub

    看看效果,在我们已经提前打开京东2这个工作薄的情况下,程序依然能够正常的运行,并且打开其他的工作薄,这样切好也满足了我们的要求,很完美,这里如果可以上传动画的话,效果应该会更加的明显,可以好像无法上传动画,那么脑海中恶补下这个过程吧

    代码分析

    For Each sth In Workbooks If sth.Name = f Then GoTo line End If Next sth

    这里是遍历所有已经被打开的工作薄的意思,For Each sth In Workbooks就这这个目的

    然后读取每个工作薄的名字,如果发现这个工作薄的名字正好和我们将要打开的工作薄的名字是相同的,那么就跳转去执行其他的代码,这里的goto line就是这样的意思,调准到line这一行

    8d640eee27714dac3b3841489fd394a7.png

    继续从这一行开始执行新的命令,新的命令就是继续准备打开下一个工作薄,当前已经被我们提前打开的工作薄京东2将会被关闭,也不会被再次打开,所以我们所作的数据操作也不会丢失了。我们来调试下,方便大家理解下程序执行的过程

    42f4f595de9d4d8edc4245c21c828a90.png

    当循环遍历的时候,如果碰到工作薄的名字等于我们要打开的工作薄的时候,我们看,程序不会执行打开的命令, 反而去执行调准的命令了。

    d39857c169b1dfaa028159c596679cb2.png

    大家领悟到了嘛?

    =======================================================

    OK。今天就分享到这里了,今天小编工作比较的忙,分享的有点晚了,小编会坚持保持每日更新的,感谢大家的支持。

    好了,明晚19:00,准时再见。

    展开全文
  • 前景提要今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,将文件夹内Excel文件批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一个悬念,如果在合并工作薄的过程中,出现了...

    前景提要

    今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,将文件夹内Excel文件批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一个悬念,如果在合并工作薄的过程中,出现了如下的提示

    6f9436111b3b56eef635a34638d3563f.png

    要如何处理,很多的人会说可以选择Y,没错这样操作的话,程序是可以继续执行的,但是如果不巧这个文件你刚刚修改了某些数据,如果你这个时候选择了Y,那么不好意思,你之前的所有改动都没有保存,你需要重新做一份新的数据,是不是很烦躁,所以在批量打开工作薄的时候,需要先判断当前工作薄是否已经被打开,如果被打开的话,我们就不要操作再次打开了。听起来似乎是一个判断,没错,今天我们就来看看这个判断要如何来写。

    场景模拟

    我们还是继续之前模拟的数据来分析,假设我们我们现在已经打开了京东2这个工作薄,并对其中的某些数据进行了修改,我们如果还是继续执行上节的代码的话,就会出现提示文件被打开的提示,如果选择Y会导致我们修改的数据没有报错,如果我们选择N,则会提示程序运行被中断,程序结束

    50f8dfb5fbce5edee153e310e3842ba4.png

    方法分析

    判断文件是否被打开,我们来想想如果是我们自己手工操作的话,我们如何判断工作薄是否被打开呢,当然就是看看当前已经打开的工作薄中是否有我们将要打开的工作薄,那么要如何去判断呢?很简单遍历所有已经打开的工作薄,然后读取已经被打开的工作薄,看看其中是否有我们要打开的那个工作薄,我们要判断天猫1的工作薄是否被打开,那么我们就遍历读取当前被打开的工作薄,看看他们的名字是否有叫做天猫1的,如果有,我们就不能再次执行打开的操作了,需要跳过打开的命令,直接读取数据,反之如果有没有天猫1的工作薄,我们既可以正常的打开操作了,来看下例子。

    代码区

    假设我们现在已经提前打开了京东2这个工作薄,并且更改了数据,但是还没有保存,我们执行下汇总程序

    f9ad7dac0aaaaa1602b720c389b220a7.png

    有报错,我们在调整下代码

    Sub test()Dim pathn, sth As Workbookpathn = ThisWorkbook.Pathf = Dir(pathn & "\")Do While f <> ""    If f <> "test.xlsm" Then        For Each sth In Workbooks            If sth.Name = f Then                GoTo line            End If        Next sth        Workbooks.Open (pathn & "\" & f)    End Ifline:    f = Dir()LoopEnd Sub

    看看效果,在我们已经提前打开京东2这个工作薄的情况下,程序依然能够正常的运行,并且打开其他的工作薄,这样切好也满足了我们的要求,很完美,这里如果可以上传动画的话,效果应该会更加的明显,可以好像无法上传动画,那么脑海中恶补下这个过程吧

    代码解析

    For Each sth In Workbooks            If sth.Name = f Then                GoTo line            End If        Next sth

    这里是遍历所有已经被打开的工作薄的意思,For Each sth In Workbooks就是这个目的

    然后读取每个工作薄的名字,如果发现这个工作薄的名字正好和我们将要打开的工作薄的名字是相同的,那么就跳转去执行其他的代码,这里的goto line就是这样的意思,调准到line这一行

    4568a587875f9d5faaca965585da58f6.png

    继续从这一行开始执行新的命令,新的命令就是继续准备打开下一个工作薄,当前已经被我们提前打开的工作薄京东2将会被关闭,也不会被再次打开,所以我们所作的数据操作也不会丢失了。我们来调试下,方便大家理解下程序执行的过程

    88856fdc2f1d8b4591ff901ffa28a91f.png

    当循环遍历的时候,如果碰到工作薄的名字等于我们要打开的工作薄的时候,我们看,程序不会执行打开的命令, 反而去执行调准的命令了。

    5520b10622679afd5299b4c2fe893b58.png

    大家领悟到了嘛?

    展开全文
  • Excel VBA工作薄 5.3多个工作薄数据汇总2判断文件是否打开前景提要今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,文件夹批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一...

    Excel VBA工作薄 5.3多个工作薄数据汇总2判断文件是否打开

    前景提要

    今天我们接着上次的分享来继续,上次我们分享了在合并多个工作薄的过程中,文件夹批量打开的操作,今天我们继续完善昨天的代码,在上节我们留下了一个悬念,如果在合并工作薄的过程中,出现了如下的提示

    cd51c97e67ea013d9686018f7103ef9e.png

    要如何处理,很多的人会说可以选择Y,没错这样操作的话,程序是可以继续执行的,但是如果不巧这个文件你刚刚修改了某些数据,你这个时候选择了Y,那么不好意思,你之前的所有改动都没有保存,你需要重新做一份新的数据,是不是很烦躁,所以在批量打开工作薄的时候,需要先判断当前工作薄是否已经被打开,如果被打开的话,我们就不要操作再次打开了。听起来似乎就是一个判断,没错,今天我们就来看看这个判断要如何来写。

    场景模拟

    我们还是继续之前模拟的数据来分析,假设我们我们现在已经打开了京东2这个工作薄,并对其中的某些数据进行了修改,我们如果还是继续执行上节的代码的话,就会出现提示文件被打开的提示,如果选择Y会导致我们修改的数据没有报错,如果我们选择N,则会提示程序运行被中断,程序结束

    36c2023177327ea455d9b5376df69d8b.png

    方法分析

    判断文件是否被打开,我们来想想如果是我们自己手工操作的话,我们如何判断工作薄是否被打开呢,当然就是看看当前已经打开的工作薄中是否有我们将要打开的工作薄,那么要如何去判断呢?很简单遍历所有已经打开的工作薄,然后读取已经被打开的工作薄,看看其中是否有我们要打开的那个工作薄,我们要判断天猫1的工作薄是否被打开,那么我们就遍历读取当前被打开的工作薄,看看他们的名字是否有叫做天猫1的,如果有,我们就不能再次执行打开的操作了,需要跳过打开的命令,直接读取数据,反之如果有没有天猫1的工作薄,我们既可以正常的打开操作了,来看下例子。

    代码区

    假设我们现在已经提前打开了京东2这个工作薄,并且更改了数据,但是还没有保存,我们执行下汇总程序

    39ea72cc5f4055cae2980330ec88f2bb.png

    有报错,我们在调整下代码

    Sub test()Dim pathn, sth As Workbookpathn = ThisWorkbook.Pathf = Dir(pathn & "")Do While f <> "" If f <> "test.xlsm" Then For Each sth In Workbooks If sth.Name = f Then GoTo line End If Next sth Workbooks.Open (pathn & "" & f) End Ifline: f = Dir()LoopEnd Sub

    看看效果,在我们已经提前打开京东2这个工作薄的情况下,程序依然能够正常的运行,并且打开其他的工作薄,这样切好也满足了我们的要求,很完美,这里如果可以上传动画的话,效果应该会更加的明显,可以好像无法上传动画,那么脑海中恶补下这个过程吧

    代码分析

    For Each sth In Workbooks If sth.Name = f Then GoTo line End If Next sth

    这里是遍历所有已经被打开的工作薄的意思,For Each sth In Workbooks就这这个目的

    然后读取每个工作薄的名字,如果发现这个工作薄的名字正好和我们将要打开的工作薄的名字是相同的,那么就跳转去执行其他的代码,这里的goto line就是这样的意思,调准到line这一行

    43864fc4a80e89cb14b1ad01f2025f3f.png

    继续从这一行开始执行新的命令,新的命令就是继续准备打开下一个工作薄,当前已经被我们提前打开的工作薄京东2将会被关闭,也不会被再次打开,所以我们所作的数据操作也不会丢失了。我们来调试下,方便大家理解下程序执行的过程

    05b3d1b2a504ed20b487ff2211f72889.png

    当循环遍历的时候,如果碰到工作薄的名字等于我们要打开的工作薄的时候,我们看,程序不会执行打开的命令, 反而去执行调准的命令了。

    643017c3a5f8e000887187a02cc2865c.png

    大家领悟到了嘛?

    =======================================================

    OK。今天就分享到这里了,今天小编工作比较的忙,分享的有点晚了,小编会坚持保持每日更新的,感谢大家的支持。

    好了,明晚19:00,准时再见。

    展开全文
  • 通过遍历当前应用程序所有已打开的工作簿文件(Workbooks 集合),判断指定名称的工作簿是否打开。 Sub test() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "1.xlsx" Then MsgBox "1文件已经打开" ...

    判断工作表是否打开

    通过遍历当前应用程序所有已打开的工作簿文件(Workbooks 集合),判断指定名称的工作簿是否打开。

    Sub test()
        Dim wb As Workbook
        For Each wb In Workbooks
            If wb.Name = "1.xlsx" Then
                MsgBox "1文件已经打开"
                Exit Sub
            End If
        Next
        MsgBox "1文件已经没有打开"
    End Sub
    
    展开全文
  • VBA 常用文件判断

    2021-04-08 10:20:24
    '判断文件是否打开 Sub test() Dim i As Integer '定义循环变量 For i = 1 To Workbooks.Count '开始循环 If Workbooks(i).Name = "模拟工资表.xlsx" Then '判断工作簿是否打开 MsgBox "文件已打开!" Exit Sub
  • 第1种:不管工作簿是否已经打开,直接打开 现在新版的office已经修改为,允许重新打开已经打开的EXCEL文件 如果文件已经打开,且未被修改,直接重新再打开1次 如果文件已经打开,但是已经被修改,会弹提示,确认...
  • 需要先判断一下该文件是否存在,否则直接打开会出错而无法继续。 我试过dir和FileSystemObject.fileexists 都不行 网站文件的地址在 https://www.ark-funds.com/auto/trades/ARK_ARKF_Trades.xls</p> ...
  • file系统的 file 返回的就是绝对路径 只有file.name 才是所谓的文件名 Sub dd1() Dim fso As Object Dim fd1 As Object Dim f1 As Object ...Set fso = CreateObject("scripting.filesystemobject") ...
  • '打开文件选择框选择文件,并获取工作簿对象 Dim aimBook As Workbook With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False '单选择 .Filters.Clear '清除文件过滤器 .Filters...
  • Workbook workbook = null; //是否包含VBA代码 bool hasVBA = false; //打开EXECL workbook = xlApp.Workbooks.Open(excelFile, Missing.Value, false, Missing.Value, Mi...
  • VBA 文件操作

    2019-05-11 16:23:30
    '1 判断A.Xls文件是否存在 Sub W1() If Len(Dir("d:/A.xls")) = 0 Then MsgBox "A文件不存在" Else MsgBox "A文件存在" End If ...'2 判断A.Xls文件是否打开 Sub W2() Dim X As Integer ...
  • 前景提要通过之前的学习,我们现在已经学会了如何批量打开工作薄,判断工作薄是否打开等操作,批量汇总工作薄的基本操作基本上都已经学了一遍了,相信聪明的你已经能够明白这些操作的方法了,那么今天我们就开始进入...
  • 在用vba处理多个excel文件时,经常会...但是如果只是要过滤每个Excel文件内的工作表名称,满足指定条件的工作表名称才需要打开处理时,如果还是逐个打开判断,效率就低了,如果再遇到每个excel文件都比较庞大,逐...
  • Public Function GetCellValue(strPath, strFile, strSheet, strA1) If Right(strPath, 1) <> "\" Then strPath = strPath & ... If Dir(strPath & strFile) = "" Then '判断文件是否存在 '文件不存在时产生运行时错
  • vba比较两个配置文件

    2017-11-01 15:23:58
    VBA操作实现文件打开,读取。然后通过正则表达式判断两个文件的配置项是否一至。
  • '1 判断A.Xls文件是否存在 Sub W1() If Len(Dir("D:\A.xls")) = 0 Then MsgBox "A文件不存在" Else MsgBox "A文件存在" End If End Sub'2 判断A.Xls文件是否打开 Sub W2() Dim X As Integer
  • 在通过VBA代码打开或是关闭文件时,需要判断文件是否已经打开,以便做出适当的操作,避免已打开的文件被误保存,下面的代码主要用来确认文件是否已的打。 函数代码 Function SheetIsExist(strExcleName As String, ...
  • 题目一 用窗口选择/打开文件 Sub get方法() Dim fname fname = Application.GetOpenFilename() '获取选择的文件名 ... '判断是否有选中,如果点了取消,则退出程序 '否则运行文件 MsgBox fname ...
  • 实用VBA代码

    千次阅读 2018-08-11 00:20:28
    打开Excel表格 Function openExcel(name As ... '判断文件是否存在 If Dir(name) &amp;amp;lt;&amp;amp;gt; &amp;quot;&amp;quot; Then Debug.Print name + &amp;quot;文件存在&amp;q
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧43 判断指定工作簿是否打开 12 43-1 遍历Workbooks集合方法 12 43-2 错误处理方法 12 技巧44 禁用宏则关闭工作簿 12 技巧45 关闭工作簿不显示保存对话框 12 45-1 使用Close方法关闭工作簿 12 45-2 单击工作簿...
  • 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
    技巧43 判断指定工作簿是否打开 106 43-1 遍历Workbooks集合方法 106 43-2 错误处理方法 106 技巧44 禁用宏则关闭工作簿 107 技巧45 关闭工作簿不显示保存对话框 111 45-1 使用Close方法关闭工作簿 111 45-2 单击...
  • VBA与数据库

    2015-11-19 18:07:38
    •实例7-1 判断SQL Server数据库是否存在(ADO) 172 •实例7-2 检查数据表是否存在(ADOX) 173 •实例7-3 创建新的SQL Server数据库和数据表(ADO) 174 •实例7-4 在已有的SQL Servre数据库中创建数据表(ADO) ...
  • VBA学习笔记(3)--文件夹操作 说明(2017.3.22): 1. 根据兰色幻想VBA80集视频教学,总结 2. 大部分可以用自带函数处理,不过复制... 判断文件夹是否存在,dir第二个参数为vbDirectory,不然只判断文件...
  • Excel 文件操作 一、概述 本质就是操作 workbook window 文件窗口 一个 excel 文件对应一...1、判断文件是否存在和打开 是否存在:输出为 0 就是不存在 Debug.Print Len(Dir("d:\test.xlsx")) 是否打开 Dim...
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    技巧067判断工作表是否存在 技巧068判断工作表是否为空 技巧069设置工作表的标签颜色 技巧070按照工作表的标签排序 技巧071确定可视工作表的范围 技巧072保护工作表 技巧073取消工作表的保护 技巧074按照条件自动...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    3.检查文件或文件夹是否存在(DIR函数) 145 4.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或...
  • 本文主要介绍将文档保存或者另存为X4版本的VBA代码实现,用到了 CorelScriptTools(Corel脚本工具)的GetFileBox 方法来打开文件对话框,使用Document(文档对象)的 Dirty 属性来判断文档在上一次保存后是否修改过...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    判断语句................................................................................................................................2 第九节 循环语句..................................................

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

vba判断文件是否打开