美文网首页零基础自学VBA
VBA第十讲练习题解析

VBA第十讲练习题解析

作者: 肉丸子豆 | 来源:发表于2017-04-06 16:38 被阅读136次

    VBA 第十讲练习题

    第一题

    背景知识

    val函数的参数是字符串,格式为 val(字符串)

    我对这函数的理解是:他先将字符串的的空格去了,然后从左往右找数字,直到遇到非数字或不能再构成数字为止。

    如:

    Val("  2  3   .  5 A 8  .  54") 的结果是23.5(找到A时,A是非数字就停了)

    Val("  2  3   .  5  8  .  54")  的结果是23.58(找到第二个.时不能与前面的构成数字,停止)

    Val("  X 2  3   .  5  8  .  54")  的结果是0(找到X时,X是非数字,停止)

    Val("  8  .  5  4    ")  的结果是8.54(这没说的,非正常)

    题目1:

    复制“日报表模板”工作表(已隐藏)至本工作簿最后一个位置,复制后的工作表名称为最后的日期天数+1&"报表"的格式。

    如:

    当前情况下,没有任何一天的日报表,则新复制的工作表名称是“1日报表”,如果再添加时就是1+1=2日报表。如果目前已存在5天的日报表,则复制后的工作表名称应为“6日报表”

    注:“日报表模板”工作表复制后要隐藏起来

    Sub 日报表格式生成()

    Dim i As Integer

    Dim ws As Worksheet

    Set ws = Sheets("日报表模板")

    ws.Visible = -1

    i = Val(Sheets(Sheets.Count).Name)

    ws.Copy after:=Sheets(Sheets.Count)

    If i Then

    ActiveSheet.Name = i + 1 & "日报表"

    Else

    ActiveSheet.Name = "1日报表"

    End If

    ws.Visible = 0

    Sheets(1).Select

    End Sub

    第二题:把所有日报表另存为工作簿到本文夹下,工作簿名称为工作表的名称

    Sub 另存报表()

    Dim i As Integer

    Dim sh As Worksheet

    For i = 1 To Sheets.Count

    If Sheets(i).Name Like "*日报表" Then

    Sheets(i).Copy

    Set sh = ActiveSheet

    sh.SaveAs ThisWorkbook.Path & "\" & sh.Name & ".xls"

    ActiveWorkbook.Close True

    End If

    Next

    End Sub

    相关文章

      网友评论

        本文标题:VBA第十讲练习题解析

        本文链接:https://www.haomeiwen.com/subject/cjsfattx.html