精华内容
下载资源
问答
  • 上一章给大家分享了前面学的数组和Range对象的属性方法,工作薄和工作表的属性的使用进行了综合举例,这一篇文章继续对上一章没有分享的内容继续举例。在举例子之前先对Dir函数具体说明一下:Dir函数的作用就是返回...

    上一章给大家分享了前面学的数组和Range对象的属性方法,工作薄和工作表的属性的使用进行了综合举例,这一篇文章继续对上一章没有分享的内容继续举例。

    在举例子之前先对Dir函数具体说明一下:

    Dir函数的作用就是返回一个文件或者文件夹的名称。

    语法:

    Dir[(pathname[, attributes])]

    Pathname:第一个参数表示文件或者文件夹的路径。

    Attributes:第二个参数是文件或者文件夹的属性。

    vbNormal 默认值,表示指定返回没有任何属性的文件

    vbDirectory 表示指定返回没有任何属性的文件和文件夹

    当函数中没有第二个参数attributes就是表示返需要返回没有任何属性的文件。

    pathname参数指定的文件或文件夹找不到时,Dir函数返回一个0长度的空字符串” ”。

    把一个工作薄中的所有工作表拆分成单个的工作薄并保存

    a7414edeef3607f46f1b0913c8e943e7.png

    程序运行的结果:

    8d6727535d7a931e37b67fac307a10fa.png

    代码1:

    Sub ce()

    Application.ScreenUpdating = False

    Dim f As String

    Dim s As Worksheet

    f = ThisWorkbook.Path & " 今天要新建的目录"

    If Len(Dir(f, vbDirector)) = 0 Then

    MkDir f

    End If

    For Each s In Worksheets

    s.Copy

    ActiveWorkbook.SaveAs f & "" & s.Name & ".xls"

    ActiveWorkbook.Close

    Next

    Application.ScreenUpdating = True

    End Sub

    再举个例子:

    从20到120数据中随机从里面抽取4个数字a.b.c.d(可以重复),这4个数字计算:a/b * c/d,输出结果需要精确到小数点后6位!

    c473051caa5c629590d7ad38282d93e9.png

    代码2:

    Sub test1()

    Dim arr(1 To 4) As Variant

    Dim i As Integer, j As Integer

    Dim k As Double

    Randomize

    For i = 1 To 4

    arr(i) = Int((Rnd * 100) + 20)

    Next

    For j = 1 To 4

    Worksheets("sheet49").Cells(j, 1) = arr(j)

    Next

    k = (arr(1) / arr(2)) * (arr(3) / arr(4))

    Worksheets("sheet49").Range("A11").NumberFormatLocal = "0.000000_ "

    Worksheets("sheet49").Range("A11") = k

    End Sub

    运行结果:

    31e290b82ca40a77f6d36d4715bf88b6.png

    喜欢的请关注我,谢谢! 今天就先分享到这里,明天继续分享。

    展开全文
  • 学习Excel技术,关注微信公众号:excelperfect在工作表的列A中放置着一系列带有完整路径的文件名列表,想要将这些文件移至指定的文件夹并使用列B中相应的名称对其重命名,如下图1所示。图1下面的代码复制列A中路径...

    学习Excel技术,关注微信公众号:

    excelperfect

    在工作表的列A中放置着一系列带有完整路径的文件名列表,想要将这些文件移至指定的文件夹并使用列B中相应的名称对其重命名,如下图1所示。

    6f4805469cb9636c1b2a4ae56849ff56.png

    1

    下面的代码复制列A中路径所在的文件到指定的文件夹(示例中假设是C盘),并使用相应的列B中的文本重命名文件。

    Sub CopyFileWithSpecialName()    Dim i As Integer    Dim lngLastRow As Integer    Dim iPos As Integer       lngLastRow = Range("A" &Rows.Count).End(xlUp).Row       For i = 1 To lngLastRow        iPos = InStrRev(Range("A"& i), ".")        FileCopy Range("A" & i),"C:\" & Range("B" & i) & Mid(Range("A" & i), iPos, Len(Range("A" & i)))    Next iEnd Sub

    代码中:

    InStrRev(Range("A" & i),".")

    从右向左查找列A的文本中“.”出现的位置,即扩展名开始的位置。而InStr函数是从左向右查找,如果代表文件的路径字符串中出现多个“.”,则只会返回第1个找到的位置,这样显然不正确。我们都知道,文件名的扩展名一定是在末尾,因此使用InStrRev函数可以确保正确地得到扩展名开始的位置。

    FileCopy方法将文件从一个地方复制到另一个地方,但要确保所复制的文件确实存在。

    为了讲解方便,示例简化了文件路径,你可以结合实际在单元格中输入任意的代表文件路径的字符串。

    欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

    968ec8f601066d2cbdfbb87da9305de9.png

    展开全文
  • 此宏解决的痛点:多个表格字段相同,需要手工一个个打开之后复制合并到一个上面的...示例:1、待合并的EXCEL放在同一个文件夹内2、使用宏,粘贴路径地址3、大功告成如下为代码Sub 合并指定文件夹的工作簿()Dim MP,...

    此宏解决的痛点:

    多个表格字段相同,需要手工一个个打开之后复制合并到一个表上面的难题。

    宏使用方式:

    如下代码贴到VBE编辑器里后,不需任何修改即可直接使用。使用前确保要合并的Excel放置在同一个文件夹内,点击宏后,把存放Excel的文件夹的地址粘贴到弹出框即可。

    示例:

    1、待合并的EXCEL放在同一个文件夹内

    2、使用宏,粘贴路径地址

    3、大功告成

    如下为代码

    Sub 合并指定文件夹的工作簿()

    Dim MP, MN, AW, Wbn, wn

    Dim Wb As Workbook

    Dim i, a, b, c, d, e

    Application.ScreenUpdating = False

    MP = InputBox("请输入需要合并的文件夹的地址,如D:\")

    Workbooks.Add

    '遍历地址下所有拓展名含xls的文件

    MN = Dir(MP & "\" & "*.xls*")

    '获取当前工作簿名称

    Num = 0

    e = 1

    '一个一个的打开工作簿,只要打开了,就执行以下的命令

    Do While MN <> ""

    '如果工作簿和汇总的表格名称不一致,则执行以下的命令

    If MN <> AW Then

    Set Wb = Workbooks.Open(MP & "\" & MN)

    '计数现在汇总了几张表

    a = a + 1

    With Workbooks(AW).ActiveSheet

    '确定当前工作簿有多少个工作表,一个一个的打开

    For i = 1 To Sheets.Count

    '如果工作表的A1单元格不为空,则执行如下语句

    If Sheets(i).Range("A1") <> "" Then

    '复制首行/表头

    Wb.Sheets(i).Range("A1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)

    '确定待复制的工作表总共有多少列

    d = Wb.Sheets(i).UsedRange.Columns.Count

    '确定待复制的工作表剔除表头有多少行

    c = Wb.Sheets(i).UsedRange.Rows.Count - 1

    '增加一列填入工作簿&工作表名

    wn = Wb.Sheets(i).Name

    .Cells(1, d + 1) = "表名"

    .Cells(e + 1, d + 1).Resize(c, 1) = MN & wn

    e = e + c

    '复制表格信息到汇总表里

    Wb.Sheets(i).Range("A2").Resize(c, d).Copy .Cells(.Range("A1048576").End(xlUp).Row + 1, 1)

    End If

    Next

    '将刚打开的表格名和前面已汇总过的表格名组合起来

    Wbn = Wbn & Chr(13) & Wb.Name

    '关闭当前工作簿

    Wb.Close False

    End With

    End If

    MN = Dir

    '循环

    Loop

    Range("A1").Select

    Application.ScreenUpdating = True

    MsgBox "共合并了" & a & "个工作簿下全部工作表。明细如下:" & Chr(13) & Wbn, vbInformation, "提示"

    End Sub

    展开全文
  • 此宏解决的痛点:多个表格字段相同,需要手工一个个打开之后复制合并到一个上面的...示例:1、待合并的EXCEL放在同一个文件夹内2、使用宏,粘贴路径地址3、大功告成如下为代码Sub 合并指定文件夹的工作簿()Dim MP,...

    此宏解决的痛点:

    多个表格字段相同,需要手工一个个打开之后复制合并到一个表上面的难题。

    宏使用方式:

    如下代码贴到VBE编辑器里后,不需任何修改即可直接使用。使用前确保要合并的Excel放置在同一个文件夹内,点击宏后,把存放Excel的文件夹的地址粘贴到弹出框即可。

    示例:

    1、待合并的EXCEL放在同一个文件夹内

    605f0b8c30fd67a384730cc97f347d85.png

    2、使用宏,粘贴路径地址

    ac9c3df8139b77b082f6f41c883b21e6.png

    3、大功告成

    4bd76c9bf8f6b027e08604fd319475f7.png

    如下为代码

    Sub 合并指定文件夹的工作簿()

    Dim MP, MN, AW, Wbn, wn

    Dim Wb As Workbook

    Dim i, a, b, c, d, e

    Application.ScreenUpdating = False

    MP = InputBox("请输入需要合并的文件夹的地址,如D:")

    Workbooks.Add

    '遍历地址下所有拓展名含xls的文件

    MN = Dir(MP & "" & "*.xls*")

    '获取当前工作簿名称

    AW = ActiveWorkbook.Name

    Num = 0

    e = 1

    '一个一个的打开工作簿,只要打开了,就执行以下的命令

    Do While MN <> ""

    '如果工作簿和汇总的表格名称不一致,则执行以下的命令

    If MN <> AW Then

    Set Wb = Workbooks.Open(MP & "" & MN)

    '计数现在汇总了几张表

    a = a + 1

    With Workbooks(AW).ActiveSheet

    '确定当前工作簿有多少个工作表,一个一个的打开

    For i = 1 To Sheets.Count

    '如果工作表的A1单元格不为空,则执行如下语句

    If Sheets(i).Range("A1") <> "" Then

    '复制首行/表头

    Wb.Sheets(i).Range("A1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)

    '确定待复制的工作表总共有多少列

    d = Wb.Sheets(i).UsedRange.Columns.Count

    '确定待复制的工作表剔除表头有多少行

    c = Wb.Sheets(i).UsedRange.Rows.Count - 1

    '增加一列填入工作簿&工作表名

    wn = Wb.Sheets(i).Name

    .Cells(1, d + 1) = "表名"

    .Cells(e + 1, d + 1).Resize(c, 1) = MN & wn

    e = e + c

    '复制表格信息到汇总表里

    Wb.Sheets(i).Range("A2").Resize(c, d).Copy .Cells(.Range("A1048576").End(xlUp).Row + 1, 1)

    End If

    Next

    '将刚打开的表格名和前面已汇总过的表格名组合起来

    Wbn = Wbn & Chr(13) & Wb.Name

    '关闭当前工作簿

    Wb.Close False

    End With

    End If

    MN = Dir

    '循环

    Loop

    Range("A1").Select

    Application.ScreenUpdating = True

    MsgBox "共合并了" & a & "个工作簿下全部工作表。明细如下:" & Chr(13) & Wbn, vbInformation, "提示"

    End Sub

    展开全文
  • 此宏解决的痛点:多个表格字段相同,需要手工一个个打开之后复制合并到一个上面的...示例:1、待合并的EXCEL放在同一个文件夹内2、使用宏,粘贴路径地址3、大功告成如下为代码Sub 合并指定文件夹的工作簿()Dim MP,...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧177 复制指定的文件 12 技巧178 删除指定的文件 12 技巧179 搜索特定的文件 12 技巧180 使用WSH处理文件 12 180-1 获取文件信息 12 180-2 查找文件 12 180-3 移动文件 12 180-4 复制文件 12 180-5 删除文件 12 ...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧177 复制指定的文件 424 技巧178 删除指定的文件 425 技巧179 搜索特定的文件 426 技巧180 使用WSH处理文件 428 180-1 获取文件信息 428 180-2 查找文件 430 180-3 移动文件 431 180-4 复制文件 431 180-5 删除...
  • 本代码提供一个示例 代码功能:以当前工作薄sheet1的第一列中的数据为名,新建工作薄(有多少列建多少工作...涉及知识:vba在指定目录新建工作薄、对指定路径中的工作薄的特定工作表进行操作 Sub test() Dim row, pat
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    03008引用指定的多个工作表 03009引用新建的工作表 03010引用包含特定单元格的工作表 03011引用工作表名称中包含特定字符串的工作表 03012获取工作表名称 03013获取全部工作表名称 03014判断某个表是否为工作表 ...
  • 34.在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和 35.返回 Column 英文字 36.查找指定列名的列数 37.文字格式的时间(分:秒)转化为数字格式(秒) 38.将"hh:mm:ss"格式的时分秒数转换成秒数...
  • 函数作用:在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和..........................59 '35.函数作用:返回 Column 英文字.......................60 '36.函数作用:查找指定列名的列数.......
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【批量新建/复制工作表】:批量新建或者复制工作表,可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名 【工作表批量加解密】:批量对工作表进行加密码、解除密码(只能批量解除自己设置的密码)。 【破解...
  • Excel百宝箱

    2012-10-27 17:09:21
    【批量新建/复制工作表】:批量新建或者复制工作表,可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名 【工作表批量加解密】:批量对工作表进行加密码、解除密码(只能批量解除自己设置的密码)。 【破解...
  • 【批量新建/复制工作表】:批量新建或者复制工作表,可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名 【工作表批量加解密】:批量对工作表进行加密码、解除密码(只能批量解除自己设置的密码)。 ...
  • 【新建工作表】 批量新建或者复制工作表,依指定存储格内容可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名。分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【新建工作表】 批量新建或者复制工作表,依指定存储格内容可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名。分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为...
  • 【新建工作表】 批量新建或者复制工作表,依指定存储格内容可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名。分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为...
  • 【新建工作表】 批量新建或者复制工作表,依指定存储格内容可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名。分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为...
  • 【批量新建/复制工作表】:批量新建或者复制工作表,可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名 【工作表批量加解密】:批量对工作表进行加密码、解除密码(只能批量解除自己设置的密码)。 【破解...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    【筛选唯一值】【建工作表目录】【批量新建复制工作表】【批量加解密】【工作表批量命名】【破解工作表/簿密码】 【批量命名文件】【可还原的合并】【合并列中相同值】【取消合并还原数据】【合并区域自动换行】...
  • 【新建工作表】 批量新建或者复制工作表,依指定存储格内容可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名。分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为...
  • File用于创建带链接的文件目录,有三个参数,第一参数指定路径,第二参数定指文件类型。第三参数指定编号(数量) 大写将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用 批注提取批注中的文字。只有一...
  • EXCEL百宝箱8.0终极版

    2011-11-05 16:48:02
    【批量新建/复制工作表】:批量新建或者复制工作表,可以瞬间建立/复制1到255个。还可以在新建或复制时全自动命名 【工作表批量加解密】:批量对工作表进行加密码、解除密码(只能批量解除自己设置的密码)。 【破解...
  • 1.3.1 工作表 1.3.2 图表 1.3.3 宏表和对话表 1.4 Excel用户界面 1.4.1 新的用户界面 1.4.2 Ribbon  1.4.3 0ffice按钮菜单 1.4.4 快捷菜单和微型工具栏 1.4.5 快速访问工具栏 1.4.6 智能标记 1.4.7 任务...
  • 1.3.1 工作表 1.3.2 图表 1.3.3 宏表和对话表 1.4 Excel用户界面 1.4.1 新的用户界面 1.4.2 Ribbon  1.4.3 0ffice按钮菜单 1.4.4 快捷菜单和微型工具栏 1.4.5 快速访问工具栏 1.4.6 智能标记 1.4.7 任务...
  • PROJECT 2007宝典 9/9

    2012-04-01 19:13:00
     6.3.22 任务工作表   6.3.23 任务分配状况   6.4 打印项目   6.5 小结  第7章 使用视图以获得不同视角   7.1 自定义视图   7.1.1 更改表   7.1.2 使用视图工作   7.2 对视图中的任务排序...
  • PROJECT 2007宝典 8/9

    2012-04-01 19:11:45
     6.3.22 任务工作表   6.3.23 任务分配状况   6.4 打印项目   6.5 小结  第7章 使用视图以获得不同视角   7.1 自定义视图   7.1.1 更改表   7.1.2 使用视图工作   7.2 对视图中的任务排序...
  • PROJECT 2007宝典 7/9

    2012-04-01 19:08:40
     6.3.22 任务工作表   6.3.23 任务分配状况   6.4 打印项目   6.5 小结  第7章 使用视图以获得不同视角   7.1 自定义视图   7.1.1 更改表   7.1.2 使用视图工作   7.2 对视图中的任务排序...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

vba复制指定路径工作表