零基础自学VBA

VBA第十讲练习题解析

2017-04-06  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读