ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Cold_Sunny

[分享] 工资条的四种做法【综合】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-6-8 11:24 | 显示全部楼层
学习了,VBA麻烦,用公式的

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-8 11:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
可宜 发表于 2012-6-8 11:24
学习了,VBA麻烦,用公式的

VBA的 主要 针对 表头 是多行的 例如 要打公司名字的 或者其他的 呵呵 各有各的用处的 呵呵

TA的精华主题

TA的得分主题

发表于 2012-6-8 12:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-8 13:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-16 15:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VB版2的方法能不能让生成工资条之间用分页符隔开?如下图:
分页符.jpg

TA的精华主题

TA的得分主题

发表于 2012-6-16 18:08 | 显示全部楼层
caimh 发表于 2012-6-16 15:12
VB版2的方法能不能让生成工资条之间用分页符隔开?如下图:
  1. Sub Macro1()

  2.     Dim Datasource
  3.     Dim i, n, m, col As Integer
  4.     Sheets("工资条").Select
  5.     Cells.Clear
  6.     ActiveWindow.View = xlNormalView
  7.     Sheets("工资表").Select
  8.     Set Datasource = Application.InputBox(prompt:="请选择要生成工资条的区域:", Type:=8)

  9.     Application.ScreenUpdating = False

  10.     col = Datasource.Columns.Count
  11.     AddressAll = Datasource.Address

  12.     ActiveWorkbook.ActiveSheet.Range(AddressAll).Select
  13.     Selection.Copy

  14.     Sheets("工资条").Select
  15.     Range("A1").Select
  16.     ActiveSheet.Paste

  17.     n = ActiveSheet.Range("A65535").End(xlUp).Row
  18.     For i = n To 3 Step -1
  19.         ActiveCell.Rows("1:1").EntireRow.Select
  20.         Selection.Copy
  21.         ActiveSheet.Rows(i & ":" & i).EntireRow.Select
  22.         Selection.Insert Shift:=xlDown
  23.     Next i
  24.     n = ActiveSheet.Range("A65535").End(xlUp).Row
  25.     For i = n To 2 Step -2
  26.         ActiveSheet.Rows(i - 1 & ":" & i).EntireRow.Select
  27.         Selection.Insert Shift:=xlDown
  28.         Selection.ClearFormats
  29.     Next i
  30.     n = ActiveSheet.Range("A65535").End(xlUp).Row

  31.     ActiveWindow.View = xlPageBreakPreview
  32.     For i = 1 To n / 4
  33.         ActiveSheet.Range(Cells(i * 4 - 1, 1), Cells(i * 4, col)).Select
  34.         With Selection.Borders(xlEdgeLeft)
  35.             .LineStyle = xlContinuous
  36.             .Weight = xlMedium
  37.         End With
  38.         With Selection.Borders(xlEdgeTop)
  39.             .LineStyle = xlContinuous
  40.             .Weight = xlMedium
  41.         End With
  42.         With Selection.Borders(xlEdgeBottom)
  43.             .LineStyle = xlContinuous
  44.             .Weight = xlMedium
  45.         End With
  46.         With Selection.Borders(xlEdgeRight)
  47.             .LineStyle = xlContinuous
  48.             .Weight = xlMedium
  49.         End With
  50.         With Selection.Borders(xlInsideVertical)
  51.             .LineStyle = xlDash
  52.             .Weight = xlThin
  53.         End With
  54.         With Selection.Borders(xlInsideHorizontal)
  55.             .LineStyle = xlDash
  56.             .Weight = xlThin
  57.         End With

  58.         Cells(i * 4 + 1, 1).EntireRow.Select
  59.         ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
  60.     Next i
  61.     'ActiveSheet.Rows("1:1").Delete
  62.     Application.ScreenUpdating = True
  63. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-6-17 13:41 | 显示全部楼层
好方法!补充一个=IF(MOD(ROW(A1),3)=0,"----",IF(MOD(ROW(A1),3)=1,丁一工资表!A$1,INDEX(丁一工资表!$A$2:$W$99,(ROW($A1)+1)/3,COLUMN(A1))))

TA的精华主题

TA的得分主题

发表于 2012-6-18 15:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shaowu459 发表于 2012-6-16 18:08

以上代码不能实现65楼的效果,请版主上传附件看看,谢谢!

TA的精华主题

TA的得分主题

发表于 2012-6-18 15:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shaowu459 发表于 2012-6-16 18:08

还有代码运行速度感觉有点慢,能否再提升呢?

TA的精华主题

TA的得分主题

发表于 2012-6-18 17:01 | 显示全部楼层
caimh 发表于 2012-6-18 15:07
以上代码不能实现65楼的效果,请版主上传附件看看,谢谢!

我上传了附件你打开是错误。我在我这里运行是出正确结果的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-20 19:38 , Processed in 0.036950 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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