Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: opelwang

[已解决]帮忙写段代码(工资表导入)

  [复制链接]
发表于 2011-8-14 01:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 fjmxwrs 于 2011-8-14 10:29 编辑

回复 opelwang 的帖子

  1. Sub 数据合并()
  2.     Dim Qssj, Lj As String, Wj As String, Xm As String, Sj As Double
  3.     Dim Rq As Long, Xrl As Long, Xrh As Long, Qsh As Long, i3 As Date
  4.     Dim i1 As String, i2 As String, ttt As String, k As Long
  5.     On Error Resume Next
  6.     Qssj = Timer
  7.     Lj = ThisWorkbook.Path & "\00"
  8.     i1 = InputBox("请输入开始日期:d")
  9.     If i1 = "" Then Exit Sub
  10.     i2 = InputBox("请输入结束日期:d")
  11.     If Len(i2) = 0 Then Exit Sub
  12.     i3 = Range("D2").Value
  13.     Application.ScreenUpdating = False
  14.     Range("D3:AI59").ClearContents
  15.     For x = i1 To i2
  16.         tt = Format(i3, "yyyy-mm") & "-" & Format(x, "00")
  17.         Wj = Dir(Lj & tt & ".xls")
  18.         If Wj = "" Then
  19.             If ttt = "" Then
  20.                 ttt = tt
  21.             Else
  22.                 ttt = ttt & Chr(10) & tt
  23.             End If
  24.             k = k + 1
  25.             GoTo aa
  26.         End If
  27.         Workbooks.Open (Lj & Wj)
  28.         Rq = Mid(tt, 9, 2)
  29.         Xrl = Rq + 3
  30.         With ActiveWorkbook.Sheets("花名冊")
  31.             For i = 40 To 55
  32.                 Qsh = Range("B2:B50").Find(.Cells(1, i)).Row
  33.                 For j = 2 To 7
  34.                     Sj = .Cells(j, i)
  35.                     Xm = .Cells(j, 39)
  36.                     Select Case Xm
  37.                         Case "生產數量"
  38.                             Xrh = Qsh
  39.                             Cells(Xrh, Xrl) = Cells(Xrh, Xrl) + Sj
  40.                             Cells(Xrh, 35) = Cells(Xrh, 35) + Sj
  41.                         Case "生產時間"
  42.                             Xrh = Qsh + 1
  43.                             Cells(Xrh, Xrl) = Cells(Xrh, Xrl) + Sj
  44.                             Cells(Xrh, 35) = Cells(Xrh, 35) + Sj
  45.                         Case "生產面積"
  46.                             Xrh = Qsh + 2
  47.                             Cells(Xrh, Xrl) = Cells(Xrh, Xrl) + Sj
  48.                             Cells(Xrh, 35) = Cells(Xrh, 35) + Sj
  49.                     End Select
  50.                 Next j
  51.             Next i
  52.         End With
  53.         ActiveWorkbook.Close True
  54. aa:
  55.     Next x
  56.     Application.ScreenUpdating = True
  57.     If ttt = "" Then
  58.         MsgBox "共用时" & Round((Timer - Qssj), 0) & "秒!"
  59.     Else
  60.         MsgBox ttt & Chr(10) & k & "个文件不存在" & Chr(10) & "共用时" & Round((Timer - Qssj), 0) & "秒!"
  61.     End If
  62. End Sub
复制代码
1.解决了输入日期问题:只需要输入日
2.解决了没找到文件时出错的问题
3.解决了提示没有找到的文件。

评分

参与人数 1 +3 收起 理由
opelwang + 3 非常感谢~~

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2011-8-14 01:58 | 显示全部楼层
非常感谢fjmxwrs版主帮忙与指点~~~
10楼的代码才是想要的结果,结贴了哟...
回复

使用道具 举报

 楼主| 发表于 2011-8-14 02:28 | 显示全部楼层
本帖最后由 opelwang 于 2011-8-14 02:28 编辑

fjmxwrs 版主,仔细测试了下,出现了异常:
输入开始日期为:1
       结束日期为:9
看看提示是什么?

再测试结束为:10  或者以后的日期数字,提示又是??

好象有点问题了...

烦请再帮忙看看,谢谢了~~~
回复

使用道具 举报

发表于 2011-8-14 10:30 | 显示全部楼层
本帖最后由 fjmxwrs 于 2011-8-14 10:34 编辑

回复 opelwang 的帖子

代码没有你说的问题呀,在我这运行正常。
现简化一下循环,最佳楼层代码已经更新

评分

参与人数 1 +3 收起 理由
opelwang + 3 感谢指点~~

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-8-14 13:09 | 显示全部楼层
本帖最后由 opelwang 于 2011-8-14 13:10 编辑

还有一个问题要烦请版主再帮忙修正一下,报表格式改动了一下。
原格式:
017.jpg

改变后的格式:                                                      附件: 2011-08-01.rar (135.17 KB, 下载次数: 0)
回复

使用道具 举报

发表于 2011-8-14 13:36 | 显示全部楼层
你自己一点也看不懂代码是吗?那你还弄什么代码呢?先从头报班学习吧!!
再说了,问题不是这样出的,花一个晚上时间给你处理一个问题,终了你说表改了一下,真有你的!!
把循环2 to 7的7改成4即可。其他不变

评分

参与人数 1 +3 收起 理由
opelwang + 3

查看全部评分

回复

使用道具 举报

发表于 2011-8-14 13:50 | 显示全部楼层
不要要求太高,有名师给你点评是好事,我有一问题贴发了一两天无人问
回复

使用道具 举报

 楼主| 发表于 2011-8-14 14:02 | 显示全部楼层
准备报名,从头学习。
回复

使用道具 举报

发表于 2011-8-14 14:03 | 显示全部楼层
楼主的学习方法有问题,一年前我己提醒过楼主的,楼主估计很少自己去研究代码,说到底还是没消化。测试也就是简单运行了一下,有问题就又跑来问了,而没有自己独立去解决问题,去了解这些代码是什么意思。
如真的对VBA没什么兴趣。建议多学基础功能,函数,数据透视表,其实很多东西不一定要用代码来解决的
回复

使用道具 举报

发表于 2011-8-14 14:17 | 显示全部楼层
回复 jiminyanyan 的帖子

一年前??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 11:10 , Processed in 0.316310 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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