精华内容
下载资源
问答
  • 这段时间写程序也少了,可能是真正会了,也就这么回事了。但这几天一直在想一个...⒈在指定工作簿中①如何添加新工作表,并重命名;②如何删除指定工作表,并不出现提示;③如何统计工作表个数;④如何将指...

    这段时间写的程序也少了,可能是真正的会了,也就这么回事了。但这几天一直在想一个问题,如何操作文件及文件夹,虽然以前也零零碎碎写了一点,但一直没有好好整理过,都是到用时再查找资料,要求也不高,只要能过关就行。现在想着趁着还能上网,还是抓紧时间整理一下吧。

    想要解决的问题如下:

    ⒈在指定工作簿中①如何添加新工作表,并重命名;②如何删除指定工作表,并不出现提示;③如何统计工作表的个数;④如何将指定工作表移动到新工作簿或更改次序;⑤如何保存文件,包括直接保存及另存为。

    ⒉如何遍历指定文件夹下的指定文件,并将其保存到工作表。

    ⒊如何按指定格式更改文件名。

    以上3个问题应该可以涵盖现在遇到的情况,下面一一解决。

    ①如何添加新工作簿,并重命名。

    Workbook 对象用法
    本部分将对下列返回 Workbook 对象的属性进行说明:

    Workbooks 属性
    ActiveWorkbook 属性
    ThisWorkbook 属性
    Workbooks 属性
    可用 Workbooks(index)(其中 index 为工作簿名称或编号)返回单个 Workbook 对象。下例激活第一个工作簿。

    Workbooks(1).Activate
    编号指示创建或打开工作簿的顺序。Workbooks(1) 为创建的第一个工作簿,而 Workbooks(Workbooks.Count) 为最后一个。激活某工作簿并不更改其编号。所有工作簿均包括在编号计数中,即便是隐藏工作簿也是如此。

    Name 属性返回工作簿名称。不能用该属性设置名称;如果需要更改名称,应当用 SaveAs 方法以其他名称保存工作簿。下例激活工作簿“Cogs.xls”中的工作表“Sheet1”(该工作簿必须已在 Microsoft Excel 中打开)。

    Workbooks("Cogs.xls").Worksheets("Sheet1").Activate
    ActiveWorkbook 属性
    ActiveWorkbook 属性返回当前处于活动状态的工作簿。下例设置活动工作簿的作者名称。

    ActiveWorkbook.Author = "Jean Selva"
    ThisWorkbook 属性
    ThisWorkbook 属性返回 Visual Basic 代码正在运行的工作簿。在绝大多数情况下,这也就是活动工作簿。然而,如果 Visual Basic 代码是加载宏的一部分,那么 ThisWorkbook 属性就不会返回活动工作簿。在这种情况下,活动工作簿是调用加载宏的工作簿,而 ThisWorkbook 属性将返回该加载宏工作簿。

    如果用 Visual Basic 代码创建加载宏,那么对于那些编译到加载宏中的工作簿,在其中运行的语句应当用 ThisWorkbook 属性加以限定。

    演示如何添加工作簿并进行更名及相关操作

    Sub 添加工作簿()
        Application.DisplayAlerts = False
        Workbooks.Add
        ActiveWorkbook.SaveAs Filename:="E:aaidafd.xls" '保存到指定文件夹中
        ActiveWorkbook.SaveAs Filename:="adiasf.xls" '保存到与代码所在工作簿同一文件夹中.
        ActiveWorkbook.Close savechanges:=True '关闭当前活动工作簿,并保存更改.
        Workbooks(1).Activate '将第1工作簿激活,但由于并不甚清楚工作簿如何排序的,所以尽量少用.
       
    ThisWorkbook.Activate '将VBA代码所在工作簿激活,这句比较实用.
        Application.DisplayAlerts = True
        Debug.Print Workbooks.Count '统计工作簿的个数
        Debug.Print Worksheets.Count '统计当前工作簿中工作表的个数,包含隐藏工作表.
    End Sub

    演示关于工作表本身的操作,例如:更名/移动位置/添加等.

    Sub 工作表()
        '如何添加工作表
        Worksheets.Add after:=Worksheets(Worksheets.Count) '添加新工作并放在倒数第1位置处.
        Worksheets.Add before:=Worksheets(Worksheets.Count) '添加新工作表并放在倒数第2位置处.
        '如何更改工作表的顺序
        Sheets(1).Move before:=Worksheets(Worksheets.Count) '移动指定工作表到指定位置处,但这个地方不会出现提示。
        Worksheets(1).Move before:=Worksheets(Worksheets.Count) '移动指定工作表到指定位置处.
        '如何更改工作表名称
        ActiveSheet.Name = "xiehui" '将当前活动工作表更改为指定名字.
        Worksheets(1).Name = "sidafd" '将当前工作簿中指定工作表更名.

        '如何为一指定工作表建立副本

        worksheets(1).copy

    End Sub

    遍历文件夹,获得文件名并只保留文件名.

    Sub 遍历指定文件夹下的所有文件并只保留文件名()
        Dim i As Integer
        Dim sr As FileSearch '定义一个文件搜索对象
        Set sr = Application.FileSearch
        sr.LookIn = "E:2009-2010学年历次考试2009年11月份考试--学校统考补考名单" '注意路径,换成你实际的路径
        sr.Filename = "*.*" '搜索所有文件
        sr.Execute '执行搜索
        Cells.Delete '表格清空
        For i = 1 To sr.FoundFiles.Count
            Cells(i, 1) = sr.FoundFiles(i) '每一行第一列填写一个文件名
        Next
        '获取共有多少行,为下一步循环做准备
        totalR = Range("A65536").End(xlUp).Row
        '这是左边取,结果为"E:"
    '    For i = 1 To totalR
    '        Cells(i, 1).Value = Left(Cells(i, 1).Value, InStr(1, Cells(i, 1).Value, "") - 1)
    '    Next i
        '若从右边取呢?结果只保留了文件名
        For i = 1 To totalR
            Cells(i, 1).Value = Right(Cells(i, 1).Value, Len(Cells(i, 1).Value) - InStrRev(Cells(i, 1).Value, ""))
        Next i
    End Sub


     

    菊子曰 今天你菊子曰了么?

    转载于:https://www.cnblogs.com/xiehui/archive/2010/03/29/2004304.html

    展开全文
  • 今天我们再来看一个类似的例子,这次我们不是从Excel中取数据,而是要对Excel进行一系列的操作,例如我们要对文件夹中的所有Excel的Sheet1的A1输入“战战如疯”,将Sheet2表格删除。之前我们讲过打开工作簿可以用...

    之前讲过怎样利用OPEN方法从多个Excel中获得数据,今天我们再来看一个类似的例子,这次我们不是从Excel中取数据,而是要对Excel进行一系列的操作,例如我们要对文件夹中的所有Excel的Sheet1的A1输入“战战如疯”,将Sheet2表格删除。之前我们讲过打开工作簿可以用OPEN或GetObject,而遍历用的是Dir方法,今天我们就用Open方法结合Dir遍历来讲下怎么解决批量操作的问题。看下面的代码

    Sub test()

    Dim mypath, myfile

    mypath = ThisWorkbook.Path & "\"

    myfile = Dir(mypath & "*.xlsx")

    Application.ScreenUpdating = False            '关闭屏幕更新

    Application.DisplayAlerts = False                 '关闭提示框

    Do While myfile <> ""

    If myfile <> ThisWorkbook.Name Then

    Workbooks.Open mypath & myfile

    With ActiveWorkbook

    .Sheets(1).Range("A1") = "战战如疯"           '这两行就是你要对该工作簿进行的操作,换成自己的代码即可使用

    .Sheets(2).Delete

    End With

    ActiveWorkbook.Save

    ActiveWorkbook.Close

    End If

    myfile = Dir

    Loop

    Application.DisplayAlerts = True

    Application.ScreenUpdating = True

    End Sub

    上面的代码利用Dir对当前文件夹下所有xlsx后缀的文件进行遍历,遍历的解释参见“利用Dir遍历某文件夹下的所有文件”然后利用Open方法打开工作簿,剩下的就是对其进行操作。需要注意的是操作对象要声明是哪个工作簿,ActiveWorkbook指的是刚刚打开的工作簿,英文逗号不要少了。

    操作很简单,我就不加示例文件了,自己复制代码,随便建几个空白工作簿试下就可以了。

    展开全文
  • 1、打开Excel文件,在底部会有多个sheet,首先按ALT+F11,打开vba编辑器; 2、在左侧编辑器的空白处单击右键,插入–>模块,将下面代码复制后...'将sheet工作表批量另存为独立的工作簿,并命名成sheet表的名称 ...

    1、打开Excel文件,在底部会有多个sheet,首先按ALT+F11,打开vba编辑器;
    2、在左侧编辑器的空白处单击右键,插入–>模块,将下面代码复制后运行,桌面就会生成一个文件夹,文件夹中就会包含单独的sheet文件。
    注意:文件夹名称的位置,可以根据需要自己删除后修改。

    Sub saveworkbook()
    
    '将sheet工作表批量另存为独立的工作簿,并命名成sheet表的名称
    
    Application.ScreenUpdating = False '关闭屏幕更新
    
    Dim ff As String '定义字符变量
    
    ff = ThisWorkbook.Path & "\文件夹名称"
    
    '指定建立新的工作簿保存到的路径
    
    If Len(Dir(ff, vbDirectory)) = 0 Then MkDir ff
    
    '如果五座神山的文件架不存在,就新建文件夹;mkdir用来 新建文件夹
    
    Dim st As Worksheet   '定义工作表变量
    
    For Each st In Worksheets  '遍历所有的sheet工作表
    
       st.Copy     ' 拷贝sheet工作表到新的工作簿,即将工作表另存为新的文件。
    
       ActiveWorkbook.SaveAs ff & "\" & st.Name & ".xlsx"  '保存工作簿,并命名成工作表的名称
    
       ActiveWorkbook.Close         '关闭工作表
    
       Next '执行遍历循环体
    
    Application.ScreenUpdating = True   '开启屏幕更新
    
    End Sub
    
    
    
    展开全文
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧42 打开指定的工作簿 12 技巧43 判断指定工作簿是否打开 12 43-1 遍历Workbooks集合方法 12 43-2 错误处理方法 12 技巧44 禁用宏则关闭工作簿 12 技巧45 关闭工作簿不显示保存对话框 12 45-1 使用Close方法关闭...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧42 打开指定的工作簿 103 技巧43 判断指定工作簿是否打开 106 43-1 遍历Workbooks集合方法 106 43-2 错误处理方法 106 技巧44 禁用宏则关闭工作簿 107 技巧45 关闭工作簿不显示保存对话框 111 45-1 使用Close...
  • Excel_VBA教程

    2014-09-22 11:36:34
    22打开含有宏的工作簿 41 23VB编辑窗口 42 24了解工程浏览窗口 43 25了解属性窗口 43 26了解代码窗口 44 27 VB编辑器里的其它窗口 46 28接下来…… 46 第二章 VBA 第一步 46 1了解指令,模块和过程 47 2 VBA工程命名...
  • 01038设置新工作簿中的工作表个数 01039设置文件的默认位置 01040设置保存自动恢复文件的时间间隔和保存位置 01041停止屏幕刷新 01042使事件无效 01043使取消键无效 01044不显示警告信息对话框 01045设置使用的...
  • 删除活动工作表里所有的JPG图片,(不一定是本工作簿中的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按...
  • 如图1所示,"BOM-01.xlsx"工作簿中的Sheet1工作表根据B列图号单元格中的内容,在图2所示的文件夹中找到对应的PDF文件,然后嵌入到相应的N列,双击N列中所示的图标,会打开PDF文件,是源文件的副本,即删除源文件,也...

    关注微信公众号:VBA168,回复“批量导入pdf文件”,获取文件下载链接。


    如图1所示,"BOM-01.xlsx"工作簿中的Sheet1工作表根据B列图号单元格中的内容,在图2所示的文件夹中找到对应的PDF文件,然后嵌入到相应的N列,双击N列中所示的图标,会打开PDF文件,是源文件的副本,即删除源文件,也可以打开N列的文件。
     

    图1 根据B列的图号在N列嵌入对应的PDF文件

    图2 PDF文件

    图3 文件格式
     

    Sub 导入文件()
         Application.ScreenUpdating = False'禁止屏幕更新
         Application.DisplayAlerts = False'禁止弹出对话框
         
         Dim fil As String, fn As String
         Dim wb As Workbook
         Dim sht As Worksheet
         Dim RWidth As Long, RHeight As Long
         Dim Obj As Object
         
         RWidth = 40
         RHeight = 60
         Set wb = Workbooks.Open(ThisWorkbook.Path & "\BOM-01.xlsx")
         Set sht = wb.Worksheets(1)
         sht.Columns("N:N").ColumnWidth = RWidth
         Dim Str1 As String
         Dim FileName As String
         FileName = Dir(ThisWorkbook.Path & "\PDF文件\*.pdf")
         Dim i As Long, IRow As Long
         IRow = sht.Range("B10000").End(xlUp).Row
         
         Do While FileName <> ""
             For i = 4 To IRow
                 Str1 = Trim(sht.Cells(i, 2).Value)
                 If InStr(FileName, Str1) And Str1 <> "" Then
                     sht.Cells(i, "N").RowHeight = RHeight
                     sht.Cells(i, "N").Select
                     fn = ThisWorkbook.Path & "\PDF文件\" & FileName
                     sht.OLEObjects.Add FileName:=fn, _
                         link:=False, _
                         DisplayAsIcon:=True, _
                         IconFileName:="C:\windows\Installer\{AC76BA86-1033-FFFF-7760-0E0F06755100}\_PDFFile.ico", _
                         iconindex:=0, _
                         iconlabel:=fn
                     Exit For
                 End If
             Next
             
             FileName = Dir '用dir函数取得其他文件名,并赋给变量
         Loop
         wb.Save
         Application.ScreenUpdating = True
         Application.DisplayAlerts = True
     End Sub

    OLEObjects.Add方法向工作表中添加新的 OLE 对象。其语法格式如下。

    表达式.Add(ClassType, FileName, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Left, Top, Width, Height)

    各参数说明如下表所示。

    名称 必选/可选 数据类型 说明
    ClassType 可选 Variant (必须指定 ClassType 或  FileName)。一个字符串,包含要创建的对象的程序标识符。如果指定了 ClassType 参数,则忽略  FileName 和 Link
    FileName 可选 Variant (必须指定 ClassType 或 FileName)。一个字符串,指定用于创建 OLE  对象的文件。
    Link 可选 Variant 如果为 True,则让基于 FileName 的新 OLE  对象链接到该文件。如果该对象未链接到文件,则该对象被创建为文件副本。默认值是 False
    DisplayAsIcon 可选 Variant 如果为 True,则以图标或正常图片方式显示新的 OLE 对象。如果该参数设置为  True,则可以使用 IconFileName 和 IconIndex 来指定图标。
    IconFileName 可选 Variant 一个字符串,指定要显示的图标所在的文件。仅当 DisplayAsIcon 为 True  时,才使用该参数。如果不指定该参数,或文件中不包含图标,则使用 OLE 类的默认图标。
    IconIndex 可选 Variant 图标文件中包含的图标数目。仅当 DisplayAsIcon 参数为 True 并且  IconFileName 参数引用包含图标的有效文件时,才使用该参数。如果由 IconFileName  参数指定的文件中不存在具有指定索引号的图标,则使用该文件中的第一个图标。
    IconLabel 可选 Variant 一个字符串,指定在图标下方显示一个标签。仅当 DisplayAsIcon 为 True  时,才使用该参数。如果省略该参数,或者该参数为空字符串 (""),则不显示任何标题。
    Left 可选 Variant 以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格 A1  的左上角或图表的左上角的坐标。
    Width 可选 Variant 以磅为单位给出新对象的初始大小。

     

     


    微信公众号:VBA168

    淘宝店铺地址:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-21233576391.4.1af0683dzrx3oU&id=584940166162

    关注微信公众号,每天及时接收Excel VBA经典示例讲解。

    淘宝店铺提供Excel定制服务。

    祝你工作和学习更轻松!

    展开全文
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    1.2EXCEL环境基于应用程序自动化优点................................................................................1 1.3录制简单宏....................................................................
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    有两种合并方式:将每个工作簿中的工作表合到当前工作簿是,表与表对应;将不同工作簿中同工作表的数据合并到同一工作表中。差异在于同名工作表的处理 【文本与数值互换】:将选区的数字瞬间转换成文本;将选区的...
  • Excel百宝箱

    2012-10-27 17:09:21
    有两种合并方式:将每个工作簿中的工作表合到当前工作簿是,表与表对应;将不同工作簿中同工作表的数据合并到同一工作表中。差异在于同名工作表的处理 【文本与数值互换】:将选区的数字瞬间转换成文本;将选区的...
  • excel 工具箱

    2012-01-22 15:04:34
    【折分工作簿】:将指定工作簿的每个工作表拆分成单独的工作簿,新工作簿名称等于原工作表名称 【工作表折分】:将当前工作表的数据按条件拆分成多个工作表,可以用任意列的数据做为拆分条件 【合并工作簿】:将指...
  • 有两种合并方式:将每个工作簿中的工作表合到当前工作簿是,表与表对应;将不同工作簿中同工作表的数据合并到同一工作表中。差异在于同名工作表的处理 【文本与数值互换】:将选区的数字瞬间转换成文本;将选区的...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    【折分工作簿】:将指定工作簿的每个工作表拆分成单独的工作簿,新工作簿名称等于原工作表名称 【工作表折分】:将当前工作表的数据按条件拆分成多个工作表,可以用任意列的数据做为拆分条件 【合并工作簿】:将指...
  • 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的文件夹中。 批 注 工 具 【插入样式批注】 提供50种花样的批注供选择,可随时更换,且美观大方。 【插入图片批注】 不仅提供多样的批注供选择,...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的文件夹中。 批 注 工 具 【插入样式批注】 提供50种花样的批注供选择,可随时更换,且美观大方。 【插入图片批注】 不仅提供多样的批注供选择...
  • 【折分工作簿】将指定工作簿的每个工作表拆分成单独的工作簿,新工作簿名称等于原工作表名称 【工作表折分】将当前工作表的数据按条件拆分成多个工作表,可以用任意列的数据做为拆分条件 【合并工作簿】将指文件夹中...
  • 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的文件夹中。 批 注 工 具 【插入样式批注】 提供50种花样的批注供选择,可随时更换,且美观大方。 【插入图片批注】 不仅提供多样的批注供...
  • 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的文件夹中。 批 注 工 具 【插入样式批注】 提供50种花样的批注供选择,可随时更换,且美观大方。 【插入图片批注】 不仅提供多样的批注供选择...
  • 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的文件夹中。 批 注 工 具 【插入样式批注】 提供50种花样的批注供选择,可随时更换,且美观大方。 【插入图片批注】 不仅提供多样的批注供...
  •  如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

vba删除文件夹中的工作簿