Excel精英培训网

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

C列到H列之间的内容,填充在K列到AQ列之间。(编号06)

[复制链接]
发表于 2017-8-17 07:57 | 显示全部楼层 |阅读模式
本帖最后由 爷们679 于 2017-9-29 18:14 编辑

C列到H列之间的内容,填充在K列到AQ列之间。

0000.zip

196.75 KB, 下载次数: 8

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-8-17 08:20 | 显示全部楼层
用了字典,使用前请自行引用:
Sub test()
Dim ar1(), ar2()
Dim d As New Dictionary
ar1 = [k6:aq6].Value
For i% = 1 To UBound(ar1, 2)
    d(ar1(1, i)) = d.Count + 1
Next
ar2 = [c7:h1356].Value
ReDim ar1(1 To UBound(ar2), 1 To i - 1)
For i = 1 To UBound(ar2)
    For j% = 1 To UBound(ar2, 2)
        If d.Exists(ar2(i, j)) Then ar1(i, d(ar2(i, j))) = ar2(i, j)
    Next
Next
i = i - 1
j = 33
[k7].Resize(i, j).Clear
[k7].Resize(i, j) = ar1
End Sub
回复

使用道具 举报

发表于 2017-8-17 11:56 | 显示全部楼层
  1. Option Explicit
  2. Sub tq()
  3. Dim ar, br, i%, k%, m%
  4. ar = [c6].CurrentRegion
  5. br = Range("k6:aq" & Cells(Rows.Count, 3).End(xlUp).Row)
  6. For i = 2 To UBound(ar)
  7.     For m = 1 To UBound(ar, 2)
  8.         For k = 1 To UBound(br, 2)
  9.             If ar(i, m) = br(1, k) Then
  10.                 br(i, k) = ar(i, m)
  11.             End If
  12.         Next k
  13.     Next m
  14. Next i
  15. [k6].Resize(UBound(br, 1), UBound(br, 2)) = br
  16. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
爷们679 + 1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-8-17 13:45 | 显示全部楼层
好,谢谢您。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 17:59 , Processed in 5.619056 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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