ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 18824864738

[求助] 如何将recordest 对象中的数据直接写入数组中?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-1-12 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
opiona 发表于 2016-6-10 08:34
recordest对象中的数据直接放进一个二维数组中
这个函数的返回值就是一个二维数组啊!
你可以自己转化的 ...

您好,我下载了之前分享的工资表模板,但是我们显示的要求字段更多(16个),改了好几次都不行,您能帮帮我吗?谢谢。在线等

工资表.zip

27.2 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2018-1-13 15:56 | 显示全部楼层
  1. Sub 每个月在一张表()

  2. 'On Error Resume Next    '// 发生错误,自动执行下一句,就是忽略错误
  3. Application.ScreenUpdating = False '//关闭屏幕刷新
  4. Application.DisplayAlerts = False '//关闭系统提示
  5. t = Timer   '//开始时间

  6.     StrBT = "姓名,固定工资,绩效工资,独子费,其它,扣款,应发合计,养老保险,医疗保险,失业保险,公积金,缴税工资,代扣个税,其它扣款,扣款合计,实发合计"

  7.     StrYF = ""
  8.     StrSQL1 = "" '//汇成总表
  9.     For I = 1 To 12
  10.         For Each SH In Worksheets
  11.             If SH.Name = I & "月" Then
  12.             If StrYF <> "" Then StrYF = StrYF & ","
  13.             StrYF = StrYF & Format(I, "00") & "月"
  14.             
  15.             If StrSQL1 <> "" Then StrSQL1 = StrSQL1 & " UNION ALL "
  16.                 StrSQL1 = StrSQL1 & "SELECT " & StrBT
  17.                 StrSQL1 = StrSQL1 & ",'" & Format(I, "00") & "月' AS 月份"
  18.                 StrSQL1 = StrSQL1 & " FROM [" & SH.Name & "$A2:P]"
  19.                 StrSQL1 = StrSQL1 & " WHERE NOT 姓名 IS NULL"
  20.                
  21.                 Exit For
  22.             End If
  23.         Next
  24.     Next

  25.     Str_coon = "HDR=yes';Data Source =" & ThisWorkbook.FullName     '//OFFICE2003,2007 通用

  26.     StrSQL = "SELECT DISTINCT 姓名 FROM (" & StrSQL1 & ") WHERE LEN(姓名)>0"
  27.     ARX = GET_SQL_To_Arr(StrSQL, Str_coon, False)  '//不重复姓名放入二维数组
  28.    
  29.     BRX = Split(StrYF, ",")
  30.     For X = 0 To UBound(ARX)   '//循环每一个姓名
  31.         Set WB = Workbooks.Add
  32.         
  33.         For I = 0 To UBound(BRX)
  34.             StrSQL = "SELECT " & StrBT
  35.             StrSQL = StrSQL & ",月份 FROM (" & StrSQL1 & ")"
  36.             StrSQL = StrSQL & " WHERE 姓名='" & ARX(X, 0) & "'"
  37.             StrSQL = StrSQL & " AND 月份='" & BRX(I) & "'"
  38.             
  39.             WB.Worksheets.Add(Before:=WB.Worksheets(1)).Name = BRX(I)
  40.             Set SHW = WB.Worksheets(BRX(I))
  41.             SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
  42.             SHW.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
  43.         Next

  44.         WB.SaveAs Filename:=ThisWorkbook.Path & "" & ARX(X, 0) & ".XLSX"
  45.         WB.Close True
  46.     Next
  47.    
  48.    
  49. Application.ScreenUpdating = True '//恢复屏幕刷新
  50. Application.DisplayAlerts = True '//恢复系统提示
  51. MsgBox "一共用时:" & Format(Timer - t, "#0.0000") & " 秒", , "北极狐提示!!"  '//提示所用时间
  52. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-1-13 15:58 | 显示全部楼层
加菲海带 发表于 2018-1-12 12:51
您好,我下载了之前分享的工资表模板,但是我们显示的要求字段更多(16个),改了好几次都不行,您能帮帮 ...

做了2中汇总的
见附件: 工资表.rar (32.17 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2018-6-7 15:20 | 显示全部楼层
opiona 发表于 2018-1-13 15:58
做了2中汇总的
见附件:

谢谢啊
经常看您帮助大家回复问题。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 15:17 , Processed in 0.033969 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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