Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1675|回复: 6

[已解决]请求赐教!根据工作表表签名 ...

[复制链接]
发表于 2013-3-10 21:41 | 显示全部楼层 |阅读模式
请求赐教!根据工作表表签名称建立工作表并可修改.rar (8.66 KB, 下载次数: 5)
发表于 2013-3-10 21:52 | 显示全部楼层
  1. Sub 建立工作表()
  2.     Dim arr, strError As String
  3.     Dim i As Integer
  4.    
  5.     Application.ScreenUpdating = False
  6.    
  7.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)
  8.     On Error Resume Next
  9.     For i = 2 To UBound(arr)
  10.         If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  11.             Worksheets.Add after:=Worksheets(Worksheets.Count)
  12.             ActiveSheet.Name = arr(i, 1)
  13.         Else
  14.             strError = strError & "工作表 " & arr(i, 1) & "已经存在" & vbCr
  15.         End If
  16.     Next
  17.     Application.ScreenUpdating = True
  18.     If Len(strError) > 0 Then
  19.         MsgBox strError
  20.     Else
  21.         MsgBox "工作表批量建立完成"
  22.     End If
  23.     Application.ScreenUpdating = True
  24. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
松儿 + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-3-10 21:55 | 显示全部楼层    本楼为最佳答案   
  1. Sub 指量重命令工作表()
  2.     Dim arr, strError As String
  3.     Dim i As Integer
  4.    
  5.     Application.ScreenUpdating = False
  6.    
  7.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)
  8.     On Error Resume Next
  9.     For i = 2 To UBound(arr)
  10.         If Len(arr(i, 2)) > 0 Then
  11.         
  12.             If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  13.                 strError = strError & "工作表 " & arr(i, 1) & "不存在" & vbCr
  14.             Else
  15.                 Worksheets(arr(i, 1)).Name = arr(i, 2)
  16.             End If
  17.         End If
  18.     Next
  19.     Application.ScreenUpdating = True
  20.     If Len(strError) > 0 Then
  21.         MsgBox strError
  22.     Else
  23.         MsgBox "工作表批量重命名完成"
  24.     End If
  25.     Application.ScreenUpdating = True
  26. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
松儿 + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-3-10 22:00 | 显示全部楼层
296646-VBA-根据工作表表签名称建立工作表并可修改.zip (20.2 KB, 下载次数: 11)

评分

参与人数 1 +3 收起 理由
松儿 + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-3-10 22:01 | 显示全部楼层
  1. Sub 批量建立工作表()
  2. '---------------------------------------------------------------------------------------
  3. ' Procedure : 批量建立工作表
  4. ' Author    : hwc2ycy
  5. ' Date      : 2013/3/10
  6. ' Purpose   :
  7. '---------------------------------------------------------------------------------------
  8. '
  9. '数组,错误消息
  10.     Dim arr, strError As String
  11.     '遍历数组用的循环变量
  12.     Dim i As Integer

  13.     '关闭屏幕刷新
  14.     Application.ScreenUpdating = False

  15.     '取源数据
  16.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)

  17.     '忽略错误,继续往下执行
  18.     On Error Resume Next

  19.     For i = 2 To UBound(arr)
  20.         '判断要建立的工作表是否已经存在
  21.         '不存在则建立,存在则生成错误消息
  22.         If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  23.             Worksheets.Add after:=Worksheets(Worksheets.Count)
  24.             ActiveSheet.Name = arr(i, 1)
  25.         Else
  26.             strError = strError & "工作表 " & arr(i, 1) & "已经存在" & vbCr
  27.         End If
  28.     Next

  29.     '开启屏幕刷新
  30.     Application.ScreenUpdating = True

  31.     '判断错误消息字符串长度
  32.     If Len(strError) > 0 Then
  33.         MsgBox strError
  34.     Else
  35.         MsgBox "工作表批量建立完成"
  36.     End If

  37. End Sub

  38. Sub 指量重命令工作表()
  39. '---------------------------------------------------------------------------------------
  40. ' Procedure : 指量重命令工作表
  41. ' Author    : hwc2ycy
  42. ' Date      : 2013/3/10
  43. ' Purpose   :
  44. '---------------------------------------------------------------------------------------
  45. '
  46. '数组,错误消息
  47.     Dim arr, strError As String
  48.     '遍历数组用的循环变量
  49.     Dim i As Integer

  50.     '关闭屏幕刷新
  51.     Application.ScreenUpdating = False

  52.     '取源数据
  53.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)
  54.     '忽略错误,继续往下执行
  55.     On Error Resume Next
  56.     For i = 2 To UBound(arr)
  57.         '判断新工作表名是否有效
  58.         If Len(arr(i, 2)) > 0 Then
  59.             '检测要重命名的工作表是否存在
  60.             If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  61.                 '不存在,则生成错误消息提示
  62.                 strError = strError & "工作表 " & arr(i, 1) & "不存在" & vbCr
  63.             Else
  64.                 '重命名
  65.                 Worksheets(arr(i, 1)).Name = arr(i, 2)
  66.             End If
  67.         End If
  68.     Next

  69.     '开启屏幕刷新
  70.     Application.ScreenUpdating = True

  71.     '判断错误消息字符串长度
  72.     If Len(strError) > 0 Then
  73.         MsgBox strError
  74.     Else
  75.         MsgBox "工作表批量重命名完成"
  76.     End If
  77. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-10 22:07 | 显示全部楼层
批量重命名忘了检测新名称了。
  1. Sub 批量建立工作表()
  2. '---------------------------------------------------------------------------------------
  3. ' Procedure : 批量建立工作表
  4. ' Author    : hwc2ycy
  5. ' Date      : 2013/3/10
  6. ' Purpose   :
  7. '---------------------------------------------------------------------------------------

  8. '数组,错误消息
  9.     Dim arr, strError As String
  10.     '遍历数组用的循环变量
  11.     Dim i As Integer

  12.     '关闭屏幕刷新
  13.     Application.ScreenUpdating = False

  14.     '取源数据
  15.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)

  16.     '忽略错误,继续往下执行
  17.     On Error Resume Next

  18.     For i = 2 To UBound(arr)
  19.         '判断要建立的工作表是否已经存在
  20.         '不存在则建立,存在则生成错误消息
  21.         If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  22.             Worksheets.Add after:=Worksheets(Worksheets.Count)
  23.             ActiveSheet.Name = arr(i, 1)
  24.         Else
  25.             strError = strError & "工作表 " & arr(i, 1) & " 已经存在" & vbCr
  26.         End If
  27.     Next

  28.     '开启屏幕刷新
  29.     Application.ScreenUpdating = True

  30.     '判断错误消息字符串长度
  31.     If Len(strError) > 0 Then
  32.         MsgBox strError
  33.     Else
  34.         MsgBox "工作表批量建立完成"
  35.     End If

  36. End Sub

  37. Sub 指量重命令工作表()
  38. '---------------------------------------------------------------------------------------
  39. ' Procedure : 指量重命令工作表
  40. ' Author    : hwc2ycy
  41. ' Date      : 2013/3/10
  42. ' Purpose   :
  43. '---------------------------------------------------------------------------------------

  44. '数组,错误消息
  45.     Dim arr, strError As String
  46.     '遍历数组用的循环变量
  47.     Dim i As Integer

  48.     '关闭屏幕刷新
  49.     Application.ScreenUpdating = False

  50.     '取源数据
  51.     arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)
  52.     '忽略错误,继续往下执行
  53.     On Error Resume Next
  54.     For i = 2 To UBound(arr)
  55.         '判断新工作表名是否有效
  56.         If Len(arr(i, 2)) > 0 Then
  57.             '检测要重命名的工作表是否存在
  58.             If Len(Worksheets(arr(i, 1)).Name) = 0 Then
  59.                 '不存在,则生成错误消息提示
  60.                 strError = strError & "工作表 " & arr(i, 1) & " 不存在" & vbCr
  61.             Else
  62.                 '检测新名称工作表是否存在
  63.                 If Len(Worksheets(arr(i, 2)).Name) = 0 Then
  64.                     '重命名
  65.                     Worksheets(arr(i, 1)).Name = arr(i, 2)
  66.                 Else
  67.                     '存在,则生成错误消息提示
  68.                     strError = strError & "工作表 " & arr(i, 2) & " 已经存在" & vbCr
  69.                 End If

  70.             End If
  71.         End If
  72.     Next

  73.     '开启屏幕刷新
  74.     Application.ScreenUpdating = True

  75.     '判断错误消息字符串长度
  76.     If Len(strError) > 0 Then
  77.         MsgBox strError
  78.     Else
  79.         MsgBox "工作表批量重命名完成"
  80.     End If
  81. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-10 22:09 | 显示全部楼层
请求赐教!根据工作表表签名称建立工作表并可修改.rar (29.11 KB, 下载次数: 9)

评分

参与人数 1 +3 收起 理由
松儿 + 3 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 22:50 , Processed in 0.431953 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表