Excel精英培训网

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

[已解决]同志们,我又不知道我哪错了。。。。

[复制链接]
发表于 2012-11-20 13:01 | 显示全部楼层 |阅读模式
Sub add()
Dim k As Integer
For k = 6 To 10
Sheets.add.Name = ActiveSheet.Cells(k, 1).Value
End Sub

我想建6个sheet。 每个sheet 的名字在cell(k,1)里找。

可是,上面的程序不对呀。。。。

大侠们,帮帮忙。。。
最佳答案
2012-11-20 13:11
方法二
  1. Sub addsheet()
  2.     Dim k As Integer, arr

  3.     With ActiveSheet
  4.    
  5.         For k = 6 To 10
  6.             Sheets.add
  7.             ActiveSheet.Name = .Cells(k, 1)
  8.         Next
  9.     End With
  10. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-11-20 13:10 | 显示全部楼层
方法一
  1. Sub addsheet()
  2.     Dim k As Integer, arr
  3.     arr = Range(Cells(6, 1), Cells(10, 1))
  4.    
  5.     For k = 6 To 10
  6.         Sheets.add
  7.         ActiveSheet.Name = arr(k - 5, 1)
  8.     Next
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2012-11-20 13:11 | 显示全部楼层    本楼为最佳答案   
方法二
  1. Sub addsheet()
  2.     Dim k As Integer, arr

  3.     With ActiveSheet
  4.    
  5.         For k = 6 To 10
  6.             Sheets.add
  7.             ActiveSheet.Name = .Cells(k, 1)
  8.         Next
  9.     End With
  10. End Sub
复制代码
回复

使用道具 举报

发表于 2012-11-20 13:12 | 显示全部楼层
注意这样用遇到重名的情况。
回复

使用道具 举报

 楼主| 发表于 2012-11-20 13:16 | 显示全部楼层
hwc2ycy 你是哪的? 我要请你吃饭!!!你为啥这么有智慧呀?

另外,请帮我看看那个筛选后,复制到另外一张sheet的问题
回复

使用道具 举报

 楼主| 发表于 2012-11-20 13:33 | 显示全部楼层
hwc2ycy 发表于 2012-11-20 13:11
方法二

我发现有些字段太长,所以作为sheet的名字不合适。能不能加个函数,只取前五个字母?

谢谢

回复

使用道具 举报

发表于 2012-11-20 13:35 | 显示全部楼层
ActiveSheet.Name = left(.Cells(k, 1),5)
回复

使用道具 举报

发表于 2012-11-20 13:36 | 显示全部楼层
ActiveSheet.Name = left(arr(k - 5, 1),5)
回复

使用道具 举报

 楼主| 发表于 2012-11-20 13:42 | 显示全部楼层
hwc2ycy 发表于 2012-11-20 13:35
ActiveSheet.Name = left(.Cells(k, 1),5)

太谢谢了。

能不能把sheet1 上的内容也一起复制到新增加的这些sheet上?

回复

使用道具 举报

发表于 2012-11-20 13:48 | 显示全部楼层
6 to 10
只有5个表吧?
假设要修改的名称是在 sheet1 里,可以这样写代码

  1. Sub cc()
  2. Dim Gs As Integer, X As Integer
  3.   Gs = 5
  4.   Sheets.Add Sheets(Sheets.Count), , Gs
  5.   For X = 1 To Gs
  6.     Sheets(X).Name = Sheets("Sheet1").Cells(X, 1).Value
  7.   Next
  8. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:54 , Processed in 0.279821 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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