运行多个excel文件合并成一个文件宏命令,其中一条代码Wb.sheets.range(G).UsedRange

当前位置:
相关软件推荐
如何合并多个excel文件 多个excel数据表格合并教程
来源:下载之家
作者:Mr.Dai
Excel是我们日常办公必不可少的工具软件。有时候为了便于查找,我们需要把多个excel文件合并,下面为大家演示下如何合并多个excel文件。
  Excel是我们日常办公必不可少的工具软件。有时候为了便于查找,我们需要把多个excel文件合并,下面为大家演示下如何合并多个excel文件。
  合并多个excel文件:
  把需要合并的excel表格文档放到同一个文件夹里
  新建一个&数据合并.xlsx&文档
  打开&数据合并.xlsx&文档,在&Sheet1&工作表的地方右键&查看代码(快捷键:&Alt+F11&,尽量选用快捷方式)进入到Microsoft
Visual Basic for Applications窗口
  双击工程资源管理器里面的sheet1,在右侧的代码区粘贴如下代码:
  Sub 合并当前目录下所有工作簿的全部工作表()
  Dim MyPath, MyName, AWbName
  Dim Wb As Workbook, WbN As String
  Dim G As Long
  Dim Num As Long
  Dim BOX As String
  Application.ScreenUpdating = False
  MyPath = ActiveWorkbook.Path
  MyName = Dir(MyPath & &\& & &*.xls&)
  AWbName = ActiveWorkbook.Name
  Num = 0
  Do While MyName && &&
  If MyName && AWbName Then
  Set Wb = Workbooks.Open(MyPath & &\& & MyName)
  Num = Num + 1
  With Workbooks(1).ActiveSheet
  .Cells(.Range(&A65536&).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) -
  For G = 1 To Sheets.Count
  Wb.Sheets(G).UsedRange.Copy .Cells(.Range(&A65536&).End(xlUp).Row + 1,
  WbN = WbN & Chr(13) & Wb.Name
  Wb.Close False
  End With
  End If
  MyName = Dir
  Range(&A1&).Select
  Application.ScreenUpdating = True
  MsgBox &共合并了& & Num & &个工作薄下的全部工作表。如下:& & Chr(13) & WbN,
vbInformation, &提示&
  End Sub
  运行&运行子过程/用户窗体(或者直接点击运行按钮,快捷键:F5),即可合并所有Excel表格到&数据合并.xlsx&文档的Sheet1工作表里面
  完成Excel表格的合并
下载之家是国内最值得信赖的官方软件下载资源提供商,提供安全无毒的绿色软件下载、手机软件下载、游戏下载等。高速安全的软件下载尽在下载之家!
Copyright &
下载之家 (). All Rights Reserved.如何合并多个excel文件到一个excel文件中且要放在不同的工作表内-两个excel文件合并成一个excel文件里的多个sheet _心理健康资讯
如何合并多个excel文件到一个excel文件中且要放在不同的工作表内
如何合并多个excel文件到一个excel文件中且要放在不同的工作表内
选择 移动或复制工作表
选择需要到的excel中如果是同一个excel多个sheet,右击sheet名称打开需合并的excel,再按住shift按最后一个sheet,可以使用shift键,选中第一个
Name) ThenWorkbooks.ScreenUpdating = TrueEnd Sub在此界面直接按F5运行此宏.ActivateActiveWindow打开该新Excel:Sub Find()Application.ScreenUpdating = FalseDim MyDir As StringMyDir = ThisWChDrive Left(MyDir.Sheets(1) &#39.Path & &quot.CloseEnd IfMatch = Dir$Loop Until Len(Match) = 0AopenActiveSheet,按Alt+F11进入宏界面,粘贴如下代码,点菜单的插入:=ThisW&#92.Open Mfind all the excel filesChDir MyDirMatch = Dir$(&)DoIf Not LCase(Match) = LCase(ThisW&quot, 0 &#39, 1) 'copy sheetWindows(Match);&quot.Copy Before,完成,模块
1、把你要合并的excel表格放在同一个文件夹里面,在下面新建一个新的表格-&打开-&在“Sheet1”右键,点击“查看代码”-&2、输入以下代码:
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & &\& & &*.xls&)
AWbName = ActiveWorkbook.Name
Num = 0Do While MyName && &&If MyName && AWbName ThenSet Wb = Workbooks.Open(MyPath & &\& & MyName)Num = Num + 1With Workbooks(1).ActiveSheet.Cells(.Range(&B65536&).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)For G = 1 To Sheets.CountWb.Sheets(G).UsedRange.Copy .Cells(.Range(&B65536&).End(xlUp).Row + 1, 1)NextWbN = WbN & Chr(13) & Wb.NameWb.Close FalseEnd WithEnd IfMyName = DirLoopRange(&B1&).SelectApplication.ScreenUpdating = TrueMsgBox &共合并了& & Num & &个工作薄下的全部工作表。如下:& & Chr(13) & WbN, vbInformation, &提示&End Sub3、输好后找到工具栏,下拉有一个“运行子过程/用户窗体”。保存,就可以了。
一、整体简介:我理解你的需求应该是:用一个excel工作簿(结果工作簿.xlsm)来获取其它工作簿中的工作表内容,将其保存至当前工作簿中(分不同工作表保存)。如图:二、所需工具/原料:微软office2007(但要启用宏)如图:三、方法:新建一个空excel文档,写入宏代码,关联宏代码,执行宏=结果。四、步骤:1、新建一个空白的excel,并打开2、切换到【视图】-【宏】-【查看宏】。如图:3、输入“宏名”-点【创建】按钮。如图:4、输入宏代码,并保存。如图:代码如下:Sub 复制指定工作簿的全部工作表3()Dim FileOpenDim X As IntegerApplication.ScreenUpdating = FalseFileOpen = Application.GetOpenFilename(FileFilter:=&Microsoft Excel文件(*.xlsx),*.xlsx&, MultiSelect:=True, Title:=&2015&)X = 1While X &= UBound(FileOpen)Workbooks.Open Filename:=FileOpen(X)Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)X = X + 1WendExitHandler:Application.ScreenUpdating = TrueExit Suberrhadler:MsgBox Err.DescriptionEnd Sub5定义快速按钮用于执行宏。如图:6完善第5步骤:“从下列位置选择命令-【宏】”-双击自定义的宏,添加至右边-修改宏属性(图标,名称等),图标、名称随便自定-然后一路确定下来-最后保存这个excel文件。如图:7、打开刚刚新建的带宏的excel文件,点击宏的执行按钮,就能得到你想要的结果。如图:五、好人做到底,最后给你附件
合并方法如下: 1.需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个exce...
合并方法如下: 1.需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个exce...
打开需合并的excel,右击sheet名称,选择 移动或复制工作表 选择需要到的excel中 如果是...
把多个word表格文件转换到一个excel文件里:1、首先在Word文档中选择“文件→另存为”,在文...
1、将需要合并的excel工作簿文件放置在一个文件夹中.在该文件夹中,新建立一个新的excel工作簿...
如果你的所有TXT文件内的数据都是有规律的,可以先将多个TXT文件进行合并为一个TXT文件后再进行导...
1、新建一个文件夹、将要合并的表格放到里面、新建一个表格、用excel打开、右击Sheet1 2、选...
  一、根据位子或者分类情况来进行合并计算   以前未在“合并计算”对话框内选中“创建连至源数据的链...
方法/步骤 新建一个文件夹 将要合并的表格放到里面 新建一个表格 用excel打开 右击Sheet1...
新建一个文件夹 将要合并的表格放到里面 新建一个表格 用excel打开 右击Sheet1 选择查看代...
你可能感兴趣的相关内容6将多个Excel文件批量导入某个Excel文件中 -
将多个Excel文件批量导入某个Excel文件中
这是我老婆提出的一个需求:(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的名字就是选中的cells的名字。(2)创建新的worksheet的同时,要把某指定目录下与新的worksheet同名的Excel文件的内容copy到新的worksheet中去。下面是搜索了半天之后搞出来的Macro,没有异常处理,而且使用了copy/paste,文件太多时效率肯定不高。其实完全可以参照Copy a sheet from each workbook into your workbook in a folder using VBA in Microsoft Excel&和 Optimize Slow VBA Code 中的方法来优化。Sub LoadSheets()
Application.ScreenUpdating = False
' stop screen flickering
' Create new sheets according to selected cells and copy the
' contebts of other files into the new sheets
Dim YesNo As Variant, myFolder As String, MyLF As String
MyLF = Chr(10) & Chr(13)
' a line feed command
myFolder = &D:\Documents and Settings\bonny\My Documents\tools&
'change this to the location of saved XML files
'Windows 7下C盘默认不可写,请修改DefFolder的值
YesNo = MsgBox(&This Macro is going to create new worksheets according to your selected cells.& & myclf & _
&Do you want to continue?&, _
vbYesNo, &Caution&)
Select Case YesNo
Case vbYes
myFolder = InputBox(&Please enter the folder where all your Excel files locates&, Default:=myFolder)
'Create new worksheets
For Each cell In Selection.Cells
Call CreateNewWorksheet(cell.Value, myFolder)
End Select
Application.ScreenUpdating = True
Function CreateNewWorksheet(SheetName As String, FolderName As String) As String
Dim oSheet As Worksheet, vRet As Variant
Dim fName As String
'creating a new excel worksheet
Set oSheet = Worksheets.Add
With oSheet
.Name = SheetName
.Move after:=Sheets(Sheets.Count) '在当前所有worksheet后创建新的工作表
'open Excel files and copy the contents to this sheet
Dim newWB As Workbook, curWB As Workbook
Dim startRange As Range
Set curWB = ThisWorkbook ' For WorkBook and Range objects, set is necessary during assignment
fName = FolderName + &\& + SheetName + &.xls&
Set newWB = Workbooks.Open(fName)
newWB.Activate
newWB.Sheets(1).Activate ' 假定只有第一个worksheet需要copy
Set startRange = newWB.Sheets(1).UsedRange ' Only used range will be copied
newWB.Sheets(1).UsedRange.Copy
'select the destination cell
curWB.Activate
Sheets(SheetName).Activate
Range(startRange.Address).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'Clear Clipboard
newWB.Close
Exit Function
End Function
更多相关文章
----------------------------------------------------------------------------
Author : htl258(Tony)--
21:09:45--
Version:Mic ...
----------------------------------------------------------------------------
Author : htl258(Tony)--
20:09:45--
Version:Microso ...
将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.1.建立测试excel文件,假设有a b c d四个字段,保存在f:/excel目录下 并很多个一样的文件2.打开Microsoft Visual Studio 2 ...
本篇和上篇类型,只是顺序发生了变化--从Mysql度数据并保存到Excel中.
导出XLS流程:读取数据库的表-&循环记录构建制表符分隔的字段信息-&设置header信息-&导出文件(下载)到本地.
下面直接分享代码,导出文件outdb.php如下: req ...
效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID int identity(1,1) primary key, userDep nvarchar(10)not null, userName ...
只要确定打印纸盒里的安置方式.进纸方向.打印方向.纸张规格(宽高).正反面这五个参数,就可以控制住打印结果了 1.纸盒里的安置方式:纸盒一般刻录着对应常用纸张规格的刻录,当然不排除我们的自定义格式: 2.进纸方向:这 ...
通过一个简单例子,介绍两种添加CodeSnippet的方法,手动添加和用工具添加,最后再介 ...
本系列文章摘自 52nlp(我爱自然语言处理: /),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩,且在原文的基础 ...
各位,虽然此事与 AutoProxy 无关,但它对所有(也包括 AutoProxy)用户都是一个非常严重的安全威胁.我,WCM ,AutoProxy 作者,以个人名誉强烈建议您认真阅读并采取措施. 背景知识 网上传输 ...
用 EasyRecovery Pro 6.04 读取raw分区(略 ) 复制分区里内容再格式化此硬盘,分区正常后把内容剪切到原位置,坐下系统开机引导修复即可
友情链接:
管理员邮箱:info@说到excel大家应该都不陌生,也都对它强大的功能有所耳闻,自己虽然已经用了好多年,但也只能算入门水平,比如今天遇到的一个实际情况就完全不知道怎么处理,上网查阅资料之后才解决,这里记录一下。
实际情况就是:我有很多个小的excel文件,每个文件只有两行内容,且这些文件的列目录都是一样的,也就是说我需要把这几十行内容整理到一张表上。
方法一:直接复制粘贴
几十个文件倒是不算多,但这也不是一个通用的解决方法啊,如果文件再多岂不要累死。
方法二:用VBA宏解决:
求助百度之后果然找到了类似问题的解决方法和现成的一段代码:
首先把所有的子文件全部放在一个文件夹内,然后在同一个文件夹里新建一个空的excel,作为整理信息的总表,打开这个excel之后按alt+f11打开宏函数面板,如图
然后把下面一段代码拷贝过去:(经测试可直接使用)
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & “\” & “*.xls”)
AWbName = ActiveWorkbook.Name
Do While MyName && “”
If MyName && AWbName Then
Set Wb = Workbooks.Open(MyPath & “\” & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range(“A65536″).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) – 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range(“A65536″).End(xlUp).Row + 1, 1)
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
MyName = Dir
Range(“A1″).Select
Application.ScreenUpdating = True
MsgBox “共合并了” & Num & “个工作薄下的全部工作表。如下:” & Chr(13) & WbN, vbInformation, “提示”
具体代码内容我就不详细讲了,还是不难看懂的,拷贝之后点击文档上面的小绿色三角形开始运行,稍等片刻后,返回工作表可以看到资料都被整理进来了。但整理之后还有点小问题要处理,整理进来的文件应该是这样:
就是每个文件的文件名、标题、内容、以及空行都被整理进来了,而我们最后应该只需要一行的标题及每行的数据就可以了,我们观察其中每一个有内容的行号都是mod4余3的,因此只要我们把这些行筛选出来就行了,那么怎么筛选呢?我们先在最前面新建一列内容,比如为列A,在A1的函数输入框中输入=MOD(ROW(),4)(这里可以根据自己实际情况更改)然后拖动使整列有效,这样第一列就全是0-3的数字,如图:
最后只需用审阅里面的筛选功能,把不需要的行全选中删除就好了,至此我们就完美解决了批量合并表的问题。
同步发表于个人博客:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:51101次
排名:千里之外
原创:42篇
转载:22篇
评论:10条
(1)(2)(4)(6)(1)(3)(2)(2)(5)(10)(6)(10)(6)(6)

我要回帖

更多关于 vba sheets.range 的文章

 

随机推荐