Excel·VBA制作工资条

看到一篇博客《excel表头_Excel工资表怎么做?3分钟学会利用函数生成工资表》,使用排序功能、函数制作工资条。但如果需要经常制作工资条,显然使用VBA更加方便

VBA制作工资条

vbnet 复制代码
Sub 制作工资条()
    Dim title_row&, blank_row&, ws_new$, title_rng As Range, ws As Worksheet, arr, num_col&, r&, i&
'--------------------参数填写:
    title_row = 1: blank_row = 2: ws_new = "工资条"  '表头行数,间隔空白行数,生成的表格名称
    Set ws = ActiveSheet  '工资表,即当前工作表
    arr = ws.[a1].CurrentRegion: num_col = UBound(arr, 2): Dim col_width As Boolean
    Set title_rng = ws.[a1].Resize(title_row, num_col): col_width = False
    On Error Resume Next  '利用错误捕获,判断是否包含工作表,不包含则新建
    Debug.Print Sheets(ws_new).Name
    If Err.Number = 9 Then Worksheets.Add(after:=Sheets(Sheets.Count)).Name = ws_new
    With Worksheets(ws_new)
        r = 1
        For i = title_row + 1 To UBound(arr)
            title_rng.Copy .Cells(r, 1)  '复制表头和数据
            ws.Cells(i, 1).Resize(1, num_col).Copy .Cells(r + title_row, 1)
            If Not col_width Then  '复制列宽
                title_rng.Copy
                .Cells(r, 1).PasteSpecial (xlPasteColumnWidths)
                col_width = True
            End If
            With .Cells(r, 1).CurrentRegion  '设置外框线,无需可注释代码
                .Borders.LineStyle = xlContinuous  '所有框线
                .Borders(xlInsideVertical).LineStyle = xlNone  '取消内框线
                .Borders(xlInsideHorizontal).LineStyle = xlNone
            End With
            r = r + title_row + blank_row + 1
        Next
    End With
End Sub

举例


扩展阅读:
《百度经验-Excel制作工资条的三种方法》

相关推荐
mudtools5 小时前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
.net·excel
尼恩久1 天前
Excel工作技巧
爬虫·python·excel
玩泥巴的1 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
excel·二次开发·com互操作
SYWG02 天前
【DBCExcelConvent】CAN报文解析辅助工具之DBC与Excel互转
c语言·qt·excel·can·dbc
诗酒当趁年华2 天前
Yapi接口文档导出测试用例至Excel中
yapi·测试用例·excel
CodeCraft Studio2 天前
国产化Excel开发组件Spire.XLS教程:Python 将 CSV 转换为 Excel(.XLSX)
windows·python·excel·csv转excel·spire·excel开发
石国旺3 天前
前端javascript在线生成excel,word模板-通用场景(免费)
前端·javascript·excel
界面开发小八哥3 天前
DevExpress WinForms中文教程:Data Grid - Excel样式的自定义过滤器对话框
ui·.net·excel·界面控件·winform·devexpress·ui开发
玩泥巴的3 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET中的区域、行和列
excel·二次开发
阿波罗尼亚3 天前
Excel Word Pdf 格式转换
pdf·word·excel