用vb编写一个代码,一个excel中有很多sheet,每个sheet里第三列是日期加时间得格式,在线等急!!!

每个sheet的第三列是日期加时间,我想在整个excel中提取相同所在列,放在一个新的excel中,并且excel表命名为该日期。如图

我想把整个excel中的相同日期所在行提取出来放在新建的excel表中并以日期命名,由于数据比较多,有好几十万个,复制粘贴太麻烦,求大神!!!

Sub dataCopy()
Dim wbSource As Workbook, wbDist As Workbook
Dim shSource As Worksheet, shDist As Worksheet
Dim r As Range
Set wbSource = ActiveWorkbook
Set wbDist = Workbooks.Add
For Each shSource In wbSource.Sheets
    For Each r In shSource.Range("C2:C" & shSource.[C1048576].End(xlUp).Row)
        If r = "" Then Exit For
        On Error Resume Next
        Set shDist = wbDist.Sheets(Format(r, "yyyy-mm-dd"))
        If Err.Number <> 0 Then
            Err.Clear
            Set shDist = wbDist.Sheets.Add
            shDist.Name = Format(r, "yyyy-mm-dd")
        End If
        On Error GoTo 0
        Set shDist = wbDist.Sheets(Format(r, "yyyy-mm-dd"))
        shSource.Rows(r.Row).Copy shDist.Rows(shDist.[C1048576].End(xlUp).Row + 1)
        shDist.Columns.AutoFit
    Next
Next
End Sub

因为不知道你的表的表头情况,所以代码没有考虑表头标题的问题,只是从每张表的第二行开始拷贝数据

附件可参考

追问

大神 这代码我运行时出错了 没法把数据提取出来,可以给你原始数据帮我看看么?

追答

不是大神哈!
能不能把出错信息贴上来?你的C列日期数据难道不是日期型而是文本型的?

温馨提示:内容为网友见解,仅供参考
无其他回答

请问如何用vb做宏,为一个excel工作表建立多个副本
Sheets("Sheet1").Copy After:=Sheets("Sheet1")Sheets("Sheet1 (2)").Name = "9"Sheets("Sheet1").Copy After:=Sheets("Sheet1")Sheets("Sheet1 (2)").Name = "8"Sheets("Sheet1").Copy After:=Sheets("Sheet1")Sheets("Sheet1 (2)").Name = "7"Sheets("Sheet1").Copy Aft...

vb如何实现对同一个Excel中很多个表的操作
对同一个Excel中很多个表的同时操作,要用到数组 Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select 如果不知道每个表格的名称,则 Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select 如果select单个表,要用到循环。For i = 1 To Sheets.Count Sheets(i).select...

编写vb代码,一个excel工作表有很多sheet,把所有sheet的第二列删除,然后...
到Excel中自定义一个宏,删除整列,插入一空列,再把A列复制过去,等等。然后查看一个宏代码应用到VB6中去。我给你整好了:Private Sub Command1_Click() Dim wkBook As Workbook Set wkBook = excel.Application.Workbooks.Open("C:\\Users\\Administrator\\Desktop\\Book1.xlsx") Dim st ...

求助:Excel VBA日期加天数循环计算
For jj = 2 To 100 If Val(Sheet1.Cells(jj, 11)) > 0 Then 'K 列有天数,就填日期 Sheet1.Cells(jj, 12) = CStr(Format(CDate(Sheet1.Cells(jj, 10)) + Val(Sheet1.Cells(jj, 11)), "YYYY-MM-DD"))Sheet1.Cells(jj + 1, 10) = CStr(Sheet1.Cells(jj, 12))Sheet...

如何用vb删除excel 中的某一行某一列的数据 例如第三行第一列.求简易...
Sub Macro1() Rows("3:3").Delete Shift:=xlUp '删除第3行,下面上移 Columns("C:C").Delete Shift:=xlToLeft '删除C列,右边左移End Sub

怎样使用vb创建excel文件vb创建sheet
测试成功,原码:DimxlappAsExcel.Application'Excel对象DimxlbookAsExcel.Workbook'工作簿DimxlsheetAsExcel.Worksheet'工作表DimxlrangeAsExcel.rangePrivateSubCommand1_Click()Setxlapp=CreateObject(\\"excel.application\\")'第一层Setxlbook=xlapp.Workbooks.Addxlapp.Visible=Truexlbook.sheets(1).range(...

Excel表格中有多个sheet表,如何用c语言或者vb语言依次打开这些表然后...
Set Xlssheet = Xlsbook.Worksheets(1) '打开第1个工作表(第2个改成2,以此类推)Xlssheet.Activate '激活工作表 '读取:Text1.Text = Xlssheet.Cells(1, 1) '读取单元格1行1列赋值给Text1(运用循环可快速读取)'关闭:Xls.Quit '关闭EXCEL Set Xlssheet = Nothing '释放资源 Set Xlsbook...

...语言将多个EXCEL表中不同sheet表汇总到一个excel的不同sheet表中...
1、打开需要汇总分析的Excel表格,选择Excel表格上方的“开发工具”选项。2、然后点击“宏”按钮进行程序编写。3、然后输入汇总程序的名称,点击编辑按钮。4、写入程序代码,这里利用的是Do loop until和IF then 语句。汇总的要求为筛选出表格中男性、本科学历、在岗人员的名单。5、在开发工具选项中选择插入...

vb设置excel格式问题
Mysheet.Range("F14:F16").Select Selection.NumberFormatLocal = "yyyy""年""m""月""d""日"";@"Mysheet.Range("H10").Selection.NumberFormatLocal = "[DBNum1][$-804]m""月""d""日"";@"Mysheet.Range("A17").NumberFormat = "General"Mysheet.Rows(1).NumberFormat = "hh:mm:ss...

用VB怎么写程序,在excel中的一个单元格内,点击按钮显示当前电脑时间...
xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets(SheetName) '设置活动工作表 xlSheet.Cells(1, 1) = Time() 'time()时间,Now()包括日期和时间 '给单元格A1赋值 xlBook.Close (True) '关闭工作簿 xlApp.Quit '结束EXCEL对象 Set xlApp = Nothing ...

相似回答