20170706xlVBA根据工资汇总表生成个人工资条
Sub NextSeven20170706001()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
Application.StatusBar = ">>>>>>>>程序正在运行>>>>>>>>" 'On Error GoTo ErrHandler Dim StartTime, UsedTime As Variant
StartTime = VBA.Timer Dim wb As Workbook
Dim OneSht As Worksheet
Dim Rng As Range
Const FirstRow As Long = 4
Dim FormatRng As Range
Dim Arr As Variant
Dim i As Long, j As Long
Dim PasteRow As Long
Dim DesRow As Long
Dim OpenWb As Workbook
Dim OpenSht As Worksheet Dim RngAdr As String
Dim FilePath As String
Dim High(1 To 8) As Double With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
.Title = "请选择工资表!"
.Filters.Clear
.Filters.Add "Excel工作簿", "*.xls*"
If .Show = -1 Then
FilePath = .SelectedItems(1)
Debug.Print FilePath
Else
MsgBox "您没有选中任何文件夹,本次汇总中断!"
Exit Sub
End If
End With Set wb = Application.ThisWorkbook
Set OpenWb = Application.Workbooks.Open(FilePath)
For Each OneSht In wb.Worksheets
RngAdr = RangeAddress(OneSht.Name)
Set OpenSht = OpenWb.Worksheets(OneSht.Name)
With OpenSht
Set Rng = .UsedRange
Arr = Rng.Value
End With
With OneSht
.UsedRange.Offset(8).Clear
For i = 1 To 8
High(i) = .Cells(i, 1).RowHeight
Next i Set FormatRng = .Range(RngAdr)
For i = LBound(Arr) + 1 To UBound(Arr) - 1 If i = 2 Then
For j = LBound(Arr, 2) To UBound(Arr, 2)
.Cells(FirstRow, j + 1).Value = Arr(i, j)
Next j
Else
'复制一次格式
PasteRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row + 4
FormatRng.Copy .Cells(PasteRow, 1)
DesRow = PasteRow + 3 For j = LBound(Arr, 2) To UBound(Arr, 2)
.Cells(DesRow, j + 1).Value = Arr(i, j)
Next j End If
Next i EndRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row For i = 1 To EndRow
x = (i - 1) Mod 8 + 1
.Rows(i).RowHeight = High(x)
Next i
End With Next OneSht OpenWb.Close False Set wb = Nothing
Set OneSht = Nothing
Set FormatRng = Nothing
Set OpenWb = Nothing
Set OpenSht = Nothing ErrorExit:
Set wb = Nothing
Set OneSht = Nothing
Set FormatRng = Nothing
Set OpenWb = Nothing
Set OpenSht = Nothing Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.StatusBar = False
Exit Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ErrHandler:
If Err.Number <> 0 Then
MsgBox Err.Description & "!", vbCritical, "NextSeven Excel Studio QQ84857038"
'Debug.Print Err.Description
Err.Clear
Resume ErrorExit
End If
End Sub Function RangeAddress(ByVal SheetName As String) As String
Select Case SheetName
Case "岗位工资制"
RangeAddress = "A1:AG8"
Case "叉车工资制"
RangeAddress = "A1:AJ8"
Case "产能工资制"
RangeAddress = "A1:AH8"
End Select
End Function
20170706xlVBA根据工资汇总表生成个人工资条的更多相关文章
- k3 Bos开发百问百答
K/3 BOS开发百问百答 (版本:V1.1) K3产品市场部 目录 一.基础资料篇__ 1 [摘要]bos基础资料的显示问题_ 1 [摘要]单 ...
- 用友u8数据库表结构
用友数据库表名参照表1 Accessaries 成套件表2 AccInformation 帐套参数表3 AdjustPVouch4 AdjustPVouchs5 Ap_AlarmSet 单位报警分类设 ...
- 《Oracle查询优化改写技巧与案例》学习笔记-------使用数字篇
一个系列的读书笔记,读的书是有教无类和落落两位老师编写的<Oracle查询优化改写技巧与案例>. 用这个系列的读书笔记来督促自己学习Oracle,同时,对于其中一些内容,希望大家看到以后, ...
- SOLID架构设计原则
最近通读了<架构整洁之道>,受益匪浅,遂摘选出设计原则部分,与大家分享,希望大家能从中获益. 以下为书中第3部分 设计原则的原文. 设计原则概述 通常来说,要想构建-个好的软件系统,应该从 ...
- Elasticserach学习笔记(一)
1.什么是Elasticserach? 一个由Java语言开发的全文搜索引擎,全文检索就是根据用户输入查询字符的片段,能查询出包含片段的数据,简单来说就是一个分布式的搜索与分析引擎,它可以完成分布式部 ...
- 130_传析阅管理系统accdb64位版本
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 几年前笔者针对家居门店的进销存.人员管理.工资管理.任务系统.门店经营盈亏管理.销售分析.考勤请假等息息相关的业务基于Ac ...
- Oracle 11g数据库详解(2)
FAILED_LOGIN_ATTEMPTS 用于指定连续登陆失败的最大次数 达到最大次数后,用户会被锁定,登陆时提示ORA-28000 UNLIMITED为不限制 精确无误差 是 实时 PASSWOR ...
- excel技巧--批量生成工资条
要想生成如上图的工资条,快速的方法如下: 1.在工资表右侧建立一升序数字列,完成后再复制该列,重复粘贴一次在该列底部.2.对该表排序:“开始”-->“排序和筛选”-->自定义排序.在对话框 ...
- 工资表的生成、显示、修改工资,应用transactionscope 分布式事务
一: 二:SalarySheetDAL.cs using System; using System.Collections.Generic; using System.Linq; using Syst ...
随机推荐
- python getctime() 文件最后一次的改变时间
Return the metadata change time of a file,reported by os.stat() def mm(): file_name=r'c:\temp.txt' f ...
- Win10安装MySQL5.7.22 解压缩版(手动配置)方法
1.下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 直接点击下载项 下载后: 2.可以把解压的内容随便放到一个目录,我的是如 ...
- 虚拟机中安装mac系统
虚拟机安装就很简单了,傻瓜式安装,一直点击下一步就行,这里就不多说了. 所需要的配置: 虚拟机下载地址:链接:http://pan.baidu.com/s/1i45wXRf 密码:7c4x mac补丁 ...
- web前端----html表单操作
form表单 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.selec ...
- Python入门之用Python统计代码行
Pycharm每天都要写很多代码,如何统计每天的代码行数呢?作为一个目标十万行的coder,要想想办法! 题目:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列 ...
- 定制django admin页面的跳转
在django admin的 change_view, add_view和delete_view页面,如果想让页面完成操作后跳转到我们想去的url,该怎么做 默认django admin会跳转到ch ...
- Python3基础 global 使函数中的局部变量升格为全局变量
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python3基础 help 查看内置函数说明
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- No compatible targets were found Do you wish to a add new Android Virtual Device ?
运行一个Android小程序时提示: No compatible targets were found Do you wish to a add new Android Virtual Device ...
- 高斯消元&&luogu3389
高斯消元(Gauss) 高斯消元和我们做二元一次方程组差不多 流程: 1.把系数和右边的值就是用二维数组存下来->转化成矩阵 我们的目标是把这个矩阵装换成 上三角的形式 对角线系数全部为1,1下 ...