Excel精英培训网

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

[已解决]批量按目录生成工作表重复添加生成出错求解!!

[复制链接]
发表于 2014-8-9 21:17 | 显示全部楼层 |阅读模式
第一次生成没问题,再次增加目录后生成出错,请高手帮忙修改!!
最佳答案
2014-8-9 21:29
本帖最后由 lisachen 于 2014-8-9 21:35 编辑

改一句话
第10行的
y=2改成y = [a65536].End(xlUp).Row + 1
  1. Private Sub CommandButton1_Click()    '私有的子程序 CommandButton1_<点击>()
  2.     Dim i%, x%    '定义变量 i%,x%
  3.     For i = 2 To [b65536].End(xlUp).Row    '设定变量范围为i=2到 [b65536]的<末端>(方向向上 )的行标
  4.         For x = 1 To Sheets.Count    '设定变量范围为x=1到 表单集合的计数值
  5.             If Cells(i, 2) = Sheets(x).Name Then    '如果 <单元格坐标>(i,2)=<工作表>(x )的名称 则执行
  6.             End If    'If判断过程结束
  7.         Next x    '下一个x
  8.     Next i    '下一个i
  9.     Dim y    '定义变量 y
  10.     For y = [a65536].End(xlUp).Row + 1 To [b65536].End(xlUp).Row  '设定变量范围为 y=2到 [b65536]的<末端>(方向向上 )的行标
  11.         Sheets("目录").Select    '<工作表>("目录" )的选定
  12.         Cells(y, 1) = y - 1    '<单元格坐标>(y,1)=y-1
  13.         Sheets("模版").Copy After:=Sheets(Sheets.Count)    '<工作表>("模版" )的复制  后面于=<工作表>( 表单集合的计数值)
  14.         Sheets(Sheets.Count).Name = Sheets("目录").Cells(y, 2).Text    '<工作表>( 表单集合的计数值 )的名称=<工作表>("目录" )的<单元格坐标>(y,2 )的文本
  15.         ActiveSheet.Range("b1") = Cells(y, 2).Text    ' 活动工作表的<单元格区域>("b1")=<单元格坐标>(y,2 )的文本
  16.         Sheets("目录").Select    '<工作表>("目录" )的选定
  17.         Cells(y, 2).Select    '<单元格坐标>(y,2 )的选定
  18.         ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Sheets("目录").Cells(y, 2) & "!A1", TextToDisplay:=Sheets("目录").Cells(y, 2).Text    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址=<工作表>("目录" )的<单元格坐标>(y,2) & "!A1",显示文本=<工作表>("目录" )的<单元格坐标>(y,2 )的文本
  19.         Sheets(Sheets("目录").Cells(y, 2).Text).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的选定
  20.         Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1) = "返回"    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1)="返回"
  21.         Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1 )的选定
  22.         ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="目录!A1", TextToDisplay:="返回"    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址="目录!A1",显示文本="返回"
  23.     Next y    '下一个y
  24. End Sub    '子程序结束
复制代码

复制代码

批量按目录生成工作表8.8.zip

68.1 KB, 下载次数: 30

 楼主| 发表于 2014-8-9 21:22 | 显示全部楼层
本帖最后由 布山客 于 2014-8-9 21:23 编辑

Private Sub CommandButton1_Click()    '私有的子程序 CommandButton1_<点击>()
    Dim i%, x%    '定义变量 i%,x%
    For i = 2 To [b65536].End(xlUp).Row    '设定变量范围为i=2到 [b65536]的<末端>(方向向上 )的行标
        For x = 1 To Sheets.Count    '设定变量范围为x=1到 表单集合的计数值
            If Cells(i, 2) = Sheets(x).Name Then    '如果 <单元格坐标>(i,2)=<工作表>(x )的名称 则执行
            End If    'If判断过程结束
        Next x    '下一个x
    Next i    '下一个i
    Dim y    '定义变量 y
    For y = 2 To [b65536].End(xlUp).Row    '设定变量范围为 y=2到 [b65536]的<末端>(方向向上 )的行标
        Sheets("目录").Select    '<工作表>("目录" )的选定
        Cells(y, 1) = y - 1    '<单元格坐标>(y,1)=y-1
        Sheets("模版").Copy After:=Sheets(Sheets.Count)    '<工作表>("模版" )的复制  后面于=<工作表>( 表单集合的计数值)
       Sheets(Sheets.Count).Name = Sheets("目录").Cells(y, 2).Text    '<工作表>( 表单集合的计数值 )的名称=<工作表>("目录" )的<单元格坐标>(y,2 )的文本     
   
ActiveSheet.Range("b1") = Cells(y, 2).Text    ' 活动工作表的<单元格区域>("b1")=<单元格坐标>(y,2 )的文本
        Sheets("目录").Select    '<工作表>("目录" )的选定
        Cells(y, 2).Select    '<单元格坐标>(y,2 )的选定
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Sheets("目录").Cells(y, 2) & "!A1", TextToDisplay:=Sheets("目录").Cells(y, 2).Text    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址=<工作表>("目录" )的<单元格坐标>(y,2) & "!A1",显示文本=<工作表>("目录" )的<单元格坐标>(y,2 )的文本
        Sheets(Sheets("目录").Cells(y, 2).Text).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的选定
        Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1) = "返回"    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1)="返回"
        Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1 )的选定
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="目录!A1", TextToDisplay:="返回"    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址="目录!A1",显示文本="返回"
    Next y    '下一个y
End Sub    '子程序结束

Private Sub CommandButton2_Click()

End Sub
回复

使用道具 举报

发表于 2014-8-9 21:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lisachen 于 2014-8-9 21:35 编辑

改一句话
第10行的
y=2改成y = [a65536].End(xlUp).Row + 1
  1. Private Sub CommandButton1_Click()    '私有的子程序 CommandButton1_<点击>()
  2.     Dim i%, x%    '定义变量 i%,x%
  3.     For i = 2 To [b65536].End(xlUp).Row    '设定变量范围为i=2到 [b65536]的<末端>(方向向上 )的行标
  4.         For x = 1 To Sheets.Count    '设定变量范围为x=1到 表单集合的计数值
  5.             If Cells(i, 2) = Sheets(x).Name Then    '如果 <单元格坐标>(i,2)=<工作表>(x )的名称 则执行
  6.             End If    'If判断过程结束
  7.         Next x    '下一个x
  8.     Next i    '下一个i
  9.     Dim y    '定义变量 y
  10.     For y = [a65536].End(xlUp).Row + 1 To [b65536].End(xlUp).Row  '设定变量范围为 y=2到 [b65536]的<末端>(方向向上 )的行标
  11.         Sheets("目录").Select    '<工作表>("目录" )的选定
  12.         Cells(y, 1) = y - 1    '<单元格坐标>(y,1)=y-1
  13.         Sheets("模版").Copy After:=Sheets(Sheets.Count)    '<工作表>("模版" )的复制  后面于=<工作表>( 表单集合的计数值)
  14.         Sheets(Sheets.Count).Name = Sheets("目录").Cells(y, 2).Text    '<工作表>( 表单集合的计数值 )的名称=<工作表>("目录" )的<单元格坐标>(y,2 )的文本
  15.         ActiveSheet.Range("b1") = Cells(y, 2).Text    ' 活动工作表的<单元格区域>("b1")=<单元格坐标>(y,2 )的文本
  16.         Sheets("目录").Select    '<工作表>("目录" )的选定
  17.         Cells(y, 2).Select    '<单元格坐标>(y,2 )的选定
  18.         ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Sheets("目录").Cells(y, 2) & "!A1", TextToDisplay:=Sheets("目录").Cells(y, 2).Text    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址=<工作表>("目录" )的<单元格坐标>(y,2) & "!A1",显示文本=<工作表>("目录" )的<单元格坐标>(y,2 )的文本
  19.         Sheets(Sheets("目录").Cells(y, 2).Text).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的选定
  20.         Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1) = "返回"    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1)="返回"
  21.         Sheets(Sheets("目录").Cells(y, 2).Text).Cells(1, 1).Select    '<工作表>(<工作表>("目录" )的<单元格坐标>(y,2 )的文本 )的<单元格坐标>(1,1 )的选定
  22.         ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="目录!A1", TextToDisplay:="返回"    ' 活动工作表的超链接的添加 Anchor=被选项,地址="",子地址="目录!A1",显示文本="返回"
  23.     Next y    '下一个y
  24. End Sub    '子程序结束
复制代码

复制代码
回复

使用道具 举报

 楼主| 发表于 2014-8-9 23:07 | 显示全部楼层
小白非常感谢您“lisachen”
回复

使用道具 举报

 楼主| 发表于 2014-8-9 23:12 | 显示全部楼层
已经测试成功
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 17:51 , Processed in 0.197832 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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