Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 灯盏

[已解决]如何根据excel单元格内的一个值自动生成到另一个sheet内的行

[复制链接]
 楼主| 发表于 2017-4-19 17:07 | 显示全部楼层
大灰狼1976 发表于 2017-4-19 16:52
没看明白你要把哪一行的数据同步到哪一行去,除了栋楼名称和单元数量外,都是空的。

这个是有数据的,同步到下面就行,1栋同步1栋的,2栋同步2栋的

data.rar

55.56 KB, 下载次数: 1

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2017-4-20 09:30 | 显示全部楼层
大灰狼1976 发表于 2017-4-19 16:52
没看明白你要把哪一行的数据同步到哪一行去,除了栋楼名称和单元数量外,都是空的。

大神你在么?

回复

使用道具 举报

发表于 2017-4-20 09:43 | 显示全部楼层
放到模板1工作表试试
  1. Private Sub CommandButton1_Click()
  2. Dim n&, s$, i&, j&, k&, arr, brr, r&
  3. arr = [b2:r7]
  4. ReDim brr(1 To Application.Sum(Application.Index(arr, , 2)), 1 To UBound(arr, 2))
  5. For i = 1 To UBound(arr)
  6.   If arr(i, 1) = "" Then Exit For
  7.     n = arr(i, 2)
  8.     s = arr(i, 1)
  9.     For j = 1 To n
  10.       r = r + 1
  11.       brr(r, 1) = s
  12.       brr(r, 2) = j
  13.       For k = 3 To UBound(arr, 2)
  14.         brr(r, k) = arr(i, k)
  15.       Next k
  16.     Next j
  17. Next i
  18. [b9].Resize(r, UBound(brr, 2)) = brr
  19. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-4-20 10:14 | 显示全部楼层
大灰狼1976 发表于 2017-4-20 09:43
放到模板1工作表试试

原数组的取值范围 arr   这个修改之后还是一样的效果,是哪里出了问题么?改为b2:o7  效果与r7还是一样的

回复

使用道具 举报

 楼主| 发表于 2017-4-20 10:16 | 显示全部楼层
大灰狼1976 发表于 2017-4-20 09:43
放到模板1工作表试试

感觉像是,只要上面又信息,下面就会同步
回复

使用道具 举报

发表于 2017-4-20 10:39 | 显示全部楼层
灯盏 发表于 2017-4-20 10:14
原数组的取值范围 arr   这个修改之后还是一样的效果,是哪里出了问题么?改为b2:o7  效果与r7还是一样 ...

o7和r7结果一样的原因是o7后面的单元格区域都没有数据,当然是一样的,如果有数据就能看出区别了。
还是这句话,先要理解。
回复

使用道具 举报

 楼主| 发表于 2017-4-20 11:04 | 显示全部楼层
大灰狼1976 发表于 2017-4-20 10:39
o7和r7结果一样的原因是o7后面的单元格区域都没有数据,当然是一样的,如果有数据就能看出区别了。
还是 ...

明白了,还有一个附件,大神帮看下,这种的怎么生成

test.rar

57.1 KB, 下载次数: 1

回复

使用道具 举报

发表于 2017-4-20 11:17 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2. Dim n&, s$, i&, j&, k&, arr, brr, crr, r&
  3. arr = [b17:ad20]
  4. For i = 1 To UBound(arr)
  5.   If arr(i, 3) = "" Then Exit For
  6.   brr = Split(arr(i, 3), "-")
  7.   n = n + (brr(1) - brr(0)) / 100 + 1
  8. Next i
  9. ReDim brr(1 To n, 1 To UBound(arr, 2))
  10. For i = 1 To UBound(arr)
  11.   If arr(i, 1) = "" Then Exit For
  12.   crr = Split(arr(i, 3), "-")
  13.   For j = crr(0) To crr(1) Step 100
  14.     r = r + 1
  15.     For k = 1 To UBound(arr, 2)
  16.       brr(r, k) = arr(i, k)
  17.     Next k
  18.     brr(r, 3) = j
  19.     brr(r, 4) = Int(j / 100)
  20.   Next j
  21. Next i
  22. [c27].Resize(r, UBound(brr, 2)) = brr
  23. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-4-20 14:22 | 显示全部楼层

两个不能同时生效么?

回复

使用道具 举报

 楼主| 发表于 2017-4-20 14:29 | 显示全部楼层

大神看看我这个问题出在哪里

test.rar

59.95 KB, 下载次数: 1

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 03:07 , Processed in 0.523811 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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