Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖

[已解决]关于删除数据的代码求助,在线等,急用

[复制链接]
发表于 2015-9-24 15:57 | 显示全部楼层
要清理一下待提取的表,只能按附件的表式,不然没法操作。
也可以在前面加一句 on error resume next,忽略出错部分。
回复

使用道具 举报

发表于 2015-9-24 16:02 | 显示全部楼层
剩下三列没注意,不过不知道对应提取表里的什么内容。
可自行参照  brr(n, 5) = Sht.[I4]    往下写  

这里的  brr(n, x)  中,x表示数据表里的列数
[I4]  表示    提取表中含此内容的单元格。
回复

使用道具 举报

 楼主| 发表于 2015-9-24 17:17 | 显示全部楼层
grf1973 发表于 2015-9-24 16:02
剩下三列没注意,不过不知道对应提取表里的什么内容。
可自行参照  brr(n, 5) = Sht.    往下写  

嗯嗯好滴,我照你这样写的改下,遇到什么问题的话,找你,真是十分感谢大侠了,需要向你多多学习啊
回复

使用道具 举报

 楼主| 发表于 2015-9-24 21:46 | 显示全部楼层
grf1973 发表于 2015-9-24 15:57
要清理一下待提取的表,只能按附件的表式,不然没法操作。
也可以在前面加一句 on error resume next,忽略 ...

大侠这一句应该加在哪里
回复

使用道具 举报

发表于 2015-9-25 10:00 | 显示全部楼层
加在一开始
回复

使用道具 举报

 楼主| 发表于 2015-9-25 14:48 | 显示全部楼层
grf1973 发表于 2015-9-25 10:00
加在一开始

大侠看下我这改的代码,但为什么备注和个人简介,尺码什么的数据还是取不到数据呐
代码可以正常运行是不假

Sub 导入文件()
    Application.ScreenUpdating = False
    Dim Filename, wb As Workbook, Sht As Worksheet
    Filename = Dir(ThisWorkbook.Path & "\*.xls")
    Dim brr(1 To 1000, 1 To 18) ''''''''''''''改到适当的列数
    Do While Filename <> ""
        If Filename <> ThisWorkbook.Name Then
            fn = ThisWorkbook.Path & "\" & Filename
            Set wb = Workbooks.Open(fn)
            For Each Sht In wb.Worksheets
                n = n + 1
                brr(n, 2) = Sht.[b3]      '姓名
                brr(n, 5) = Sht.[I4]      '手机号
                brr(n, 14) = Sht.[F3]      '籍贯
                brr(n, 18) = Sht.[I7]      '个人简介
                If Len(Sht.[M3]) > 0 Then
                    brr(n, 5) = Sht.[M3]    '最佳联系方式
                    brr(n, 7) = Sht.[d3]      '生日
                    arr = Sht.Range("a19:i30")
                For i = 2 To UBound(arr)
                    If Len(arr(i, 1)) = 0 Then
                        arr(i, 1) = arr(i - 1, 1)
                        jf = arr(i, 8)     '积分
                        If jf > 0 Then
                            nf = Left(arr(i, 1), 4)      '年
                            If nf = "2015" Then
                                brr(n, 8) = brr(n, 8) + jf     '2015年积分
                                If nf = "2014" Then
                                    brr(n, 9) = brr(n, 9) + jf     '2014年积分
                                End If
                            End If '''''''''''''缺少
                        End If '''''''''''''缺少
                    End If '''''''''''''缺少
                Next
                End If '''''''''''''缺少
            Next
            wb.Close False
        End If
        Filename = Dir
    Loop
    Set Sht = Nothing
    r = [b65536].End(3).Row + 1
    If n > 0 Then Cells(r, 1).Resize(n, 12) = brr
    Application.ScreenUpdating = True
End Sub


代码修改需求.rar

108.98 KB, 下载次数: 1

回复

使用道具 举报

发表于 2015-9-25 16:53 | 显示全部楼层
小改了一下。
  1. Sub 导入文件()
  2.     Application.ScreenUpdating = False
  3.     Dim Filename, wb As Workbook, Sht As Worksheet
  4.     Filename = Dir(ThisWorkbook.Path & "\*.xls")
  5.     Dim brr(1 To 1000, 1 To 18)
  6.     Do While Filename <> ""
  7.         If Filename <> ThisWorkbook.Name Then
  8.             fn = ThisWorkbook.Path & "" & Filename
  9.             Set wb = Workbooks.Open(fn)
  10.             For Each Sht In wb.Worksheets
  11.                 If Sht.[b3] <> "" Then    '有姓名才运行
  12.                     n = n + 1
  13.                     brr(n, 2) = Sht.[b3]      '姓名
  14.                     brr(n, 5) = Sht.[I4]      '手机号
  15.                     brr(n, 14) = Sht.[F3]      '籍贯
  16.                     brr(n, 18) = Sht.[I7]      '个人简介
  17.                     If Len(Sht.[M3]) > 0 Then brr(n, 5) = Sht.[M3]    '最佳联系方式
  18.                     brr(n, 7) = Sht.[d3]      '生日
  19.                     arr = Sht.Range("a19:i30")
  20.                     For i = 2 To UBound(arr)
  21.                         If Len(arr(i, 1)) = 0 Then arr(i, 1) = arr(i - 1, 1)
  22.                         jf = Val(arr(i, 8))     '积分
  23.                         If jf > 0 Then
  24.                             nf = Left(arr(i, 1), 4)      '年
  25.                             If nf = "2015" Then brr(n, 8) = brr(n, 8) + jf     '2015年积分
  26.                             If nf = "2014" Then brr(n, 9) = brr(n, 9) + jf     '2014年积分
  27.                         End If
  28.                     Next
  29.                 End If
  30.             Next
  31.             wb.Close False
  32.         End If
  33.         Filename = Dir
  34.     Loop
  35.     Set Sht = Nothing
  36.     r = [b65536].End(3).Row + 1
  37.     If n > 0 Then Cells(r, 1).Resize(n, 18) = brr
  38.     Application.ScreenUpdating = True
  39. End Sub
复制代码
回复

使用道具 举报

发表于 2015-9-25 16:56 | 显示全部楼层
请看附件。

提取数据需求.rar

110.56 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2015-9-25 22:36 | 显示全部楼层
grf1973 发表于 2015-9-25 16:56
请看附件。

十分感谢你呀
真是帮了我大忙了

回复

使用道具 举报

 楼主| 发表于 2015-9-30 16:37 | 显示全部楼层
grf1973 发表于 2015-9-25 16:56
请看附件。

大侠你看下这个简单需求
就是除了保留A列字母外从C列开始,所有奇数列字母都删除
这代码应该怎么写
有几百个这样表呐

删除需求.rar

73.48 KB, 下载次数: 1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 03:39 , Processed in 0.269197 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表