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制作工资条的三种方法》

相关推荐
Non-existent9874 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis5 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer5 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel5 天前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy5 天前
excel从某一列中用match筛选匹配的数据
excel
qq_546937275 天前
Excel批量转PDF_Word_图片,支持自动合并报表,效率翻倍。
pdf·word·excel
ai_coder_ai5 天前
在自动化脚本中操作excel文件
运维·自动化·excel
三千花灯5 天前
【Playwright】 自动化测试之参数化登录(Excel/CSV 数据源)
人工智能·机器学习·excel
罗政5 天前
AI工作流实现Excel全自动化(支持SQL)-案例:医院门诊排班表
人工智能·自动化·excel
小妖6665 天前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba