vba-多个工作簿合并方法1(用到了数组)

来自《别怕excel vba其实很简单》

Sub 多个工作簿合并()

  ‘多个工作簿合并 宏
  Dim bt As Range, r As Long, c As Long
  r = 1
  c = 7
  Dim wt As Worksheet
  Set wt = ThisWorkbook.Worksheets(1)
  wt.Rows(r + 1 & ":1048576").ClearContents
  Application.ScreenUpdating = False
  Dim filename As String, sht As Worksheet, wb As Workbook
  Dim erow As Long, fn As String, arr As Variant
  filename = Dir(ThisWorkbook.Path & "\*.xlsx")   ‘dir-获取文件名
    ‘MsgBox ("这个是:" & ThisWorkbook.Path)-->"这个是C;\...desktop\新建文件夹"
  Do While filename <> ""
    If filename <> ThisWorkbook.Name Then
    erow = wt.Range("a1").CurrentRegion.Rows.Count + 1   ‘当前区域的行数+1-->获得汇总表第一行的行号?
    fn = ThisWorkbook.Path & "\" & filename   ‘将第1个要汇总的工作簿名称赋给变量fn
    Set wb = GetObject(fn)   ‘将变量fn代表的工作簿对象赋给wb
    Set sht = wb.Worksheets(1)   ‘将要汇总工作表赋给sht
    arr = sht.Range(sht.Cells(1, "A"), sht.Cells(1048576, "b").End(xlUp).Offset(0, 5))
     ‘将工作表中要汇总的记录保存在数组arr中
    wt.Cells(erow, 1).Resize(UBound(arr, 1), UBound(arr, 2)) = arr ‘?
    wb.Close False
    End If
    filename = Dir ‘用dir函数取得其他文件名,并赋给变量??
  Loop
  Application.ScreenUpdating = True

End Sub

原文地址:https://www.cnblogs.com/codelidaguo/p/10264887.html

时间: 2024-08-29 17:26:56

vba-多个工作簿合并方法1(用到了数组)的相关文章

Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需求: 1 从[操作]表中,查找最后一行的数据,每一列 都为关键字 2 遍历这些关键字,从[总表]中查询这个关键字,把这一行后面的内容复制到 [预算]表中去 3 把[操作]中制定内容复制到[信息统计]中 Function Get操作NullLine() ' '从 操作表 获取最后一个有数据下面的空行

工作簿合并

同一文件夹内N个工作簿 ,每个工作簿里N个工作表,最终合并到一个工作表里的代码. 假设每个表格结构相同,第一行为标题,第二行为表头,表头内容固定,行数不固定,列固定14,工作表数量不固定,工作簿数量不固定. Sub Sample() Dim MyWb As Workbook Dim MySht As Worksheet Dim MyName As String, MyPath As String Dim MyRow As Long, MySRow As Long, MyShtN As Long

VBA 把一个工作簿中的表的数据传递到另一个工作簿中

Private Sub CommandButton2_Click() For Z = 2 To Sheet2.[b65536].End(3).Row Next Application.ScreenUpdating = False Dim j As Integer Dim souce As Worksheet Dim target As Workbook Set souce = ThisWorkbook.Worksheets("正式表") Set target = Workbooks.O

把多个工作簿的第一个工作表合并到一个工作簿的多个工作表

功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称 Sub Books2Sheets() '定义对话框变量 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 Then '定义单个文件变量 Di

【原创】如何将多个工作簿中相同格式的工作表合并到一个工作表中

如何将多个工作簿中相同格式的工作表合并到一个工作表中 Sub Books2Sheets() '定义对话框变量 Application.ScreenUpdating = False Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 The

合并一个工作簿下的多个工作表

工作中经常会碰到需要合并多个sheet,下面用VBA来解决此问题,代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count    If Sheets(j).Name <> ActiveSheet.Name Then        X = Range("A1048576").End(xlUp).Row + 1        Sheets(j).UsedRang

Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码

即在工作簿中添加一个工作表,然后移出并存为新的工作簿,在移出前将本工作簿的一个模块的代码拷贝至新的工作簿.下面是关键代码: '====================================================================== '各班名单保存为单个xls文件 ActiveSheet.Move ChDir myPath '忽略对话框,覆盖保存 Application.DisplayAlerts = False '班级名称增加"考生号处理"vba模块

VBA汇总指定多个工作簿的数据

Public Sub GatherFilesData() Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual Application.StatusBar = ">>>>>>>>程序正在运行>>>>>>>>" On E

[VBA]汇总多个工作簿的指定工作表到同一个工作簿的指定工作表中

sub 汇总多个工作簿() Application.ScreenUpdating = False Dim wb As Workbook, f As String, l As String, n As String, m As String, j As Integer f = ThisWorkbook.Path & "\" l = f & "*.xls" m = Dir(l) Do While m <> "" If m