之前分享的案例都是如何处理现有的Excel工作表,但是我们在实际的应用中往往会用到生成一个新的Excel工作表,然后把处理后的数据写入新的工作表中。今天就和大家分享如何利用Excel VBA在Excel中插入新的工作表。 1.直接插入工作表 (1)实现直接插入工作表的VBA代码 Sub add_Worksheet() '定义变量 Dim nstrName As String '输入新工作表名称,并赋值给变量nstrName nstrName = Application.InputBox("新工作表名称", Title:="输入") '插入工作表 Worksheets.Add.Name = nstrName End Sub (2)插入按钮绑定宏add_Worksheet并命名“直接插入” (3)执行看效果 成功插入新的工作表,默认位置是当前工作表的前面 2.指定位置的插入工作表 (1)实现指定位置插入工作表的VBA代码 Sub add_beforeWorksheet() '定义变量 Dim strName As String, nstrName As String, t As Boolean, sht As Worksheet '设置变量t默认值为false t = False '屏蔽报错 On Error Resume Next '输入标尺工作表名称循环 Do '输入标尺工作表名称,赋值给变量strName strName = Application.InputBox("标尺工作表名称", Title:="输入") '输入的工作表名称的对象赋值给变量sht Set sht = Worksheets(strName) '判断输入的标尺工作表名称是否存在 If sht Is Nothing Then '不存在提示重新输入 MsgBox "输入的工作表名称不存在,请重新输入!" Else '存在设置变量t为true,此时会跳出循环 t = True End If Loop While t = False Set sht = Nothing '输入新工作表名称循环 Do '输入新工作表名,赋值给变量nstrName nstrName = Application.InputBox("新工作表名称", Title:="输入") '输入的新工作表名称对象赋值给变量sht Set sht = Worksheets(nstrName) '判断输入的新工作名称是否已经存在 If Not sht Is Nothing Then '存在提示重新输入 MsgBox "输入的工作表名称已存在,请重新输入!" Else '不存在设置变量t为false,此时会跳出循环 t = False End If Loop While t = True '在XXX之前插入新工作表,如果要在之后插入则将before改为after即可 Worksheets.Add(before:=Worksheets(strName)).Name = nstrName Set sht = Nothing End Sub 注:示例为在xx之前插入工作表,如果要在xx之后插入工作表则为 Worksheets.Add(after:=Worksheets(strName)).Name = nstrName (2)插入按钮绑定宏add_beforeWorksheet并命名“指定位置插入” (3)执行看看效果 成功在指定位置插入了我们的新工作表,你会了么? |
|