Excel精英培训网

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

[已解决]请帮忙,谢谢。

[复制链接]
发表于 2014-4-28 17:24 | 显示全部楼层 |阅读模式
在表二机型输入表一有的机型名下面的用量自动填写。
最佳答案
2014-4-28 18:16
在第一行输入机型试试

Book1.rar

2.37 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-4-28 17:40 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-28 18:15 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Row = 1 And Target.Column > 1 Then
  3.     Dim arr, brr, d, i&, j%, x$, zf$
  4.     Set d = CreateObject("scripting.dictionary")
  5.     arr = Sheet1.Range("a1").CurrentRegion
  6.     brr = Range("a2:a" & Range("a65536").End(xlUp).Row)
  7.     x = Target
  8.     For i = 2 To UBound(arr)
  9.         For j = 2 To UBound(arr, 2)
  10.             zf = arr(i, 1) & "," & arr(1, j)
  11.             d(zf) = arr(i, j)
  12.         Next
  13.     Next
  14.     For i = 1 To UBound(brr)
  15.         brr(i, 1) = d(brr(i, 1) & "," & x)
  16.     Next
  17.     Target.Offset(1, 0).Resize(UBound(brr)) = brr
  18. End If
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-28 18:16 | 显示全部楼层    本楼为最佳答案   
在第一行输入机型试试

Book1.zip

8.71 KB, 下载次数: 3

回复

使用道具 举报

发表于 2014-4-28 19:08 | 显示全部楼层
来个函数版,B2右拉下拉
  1. =INDEX(Sheet1!$A:$M,MATCH($A2,Sheet1!$A:$A,),MATCH(B$1,Sheet1!$1:$1,))&""
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-4-28 21:15 | 显示全部楼层
谢谢老师帮忙。
回复

使用道具 举报

 楼主| 发表于 2014-4-28 21:28 | 显示全部楼层
dsmch 发表于 2014-4-28 18:15

你好,您帮我写的那个宏可以帮我在后面备注一下每行代码的意思吗?我想学习一下。谢谢

点评

代码很平常,主要用了字典对象,建议在论坛上搜一下相关主题  发表于 2014-4-28 21:31
回复

使用道具 举报

 楼主| 发表于 2014-4-28 22:00 | 显示全部楼层
hyshsg 发表于 2014-4-28 21:28
你好,您帮我写的那个宏可以帮我在后面备注一下每行代码的意思吗?我想学习一下。谢谢

谢谢
回复

使用道具 举报

发表于 2014-4-29 06:59 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. '工作表的单元格改变触发事件
  3. If Target.Row = 1 And Target.Column > 1 Then
  4.     '如果单元格的行为1且列大于1则
  5.     Dim arr, brr, d, i&, j%, x$, zf$ '声明数组、变量、字典对象
  6.     Set d = CreateObject("scripting.dictionary") '字典对象
  7.     arr = Sheet1.Range("a1").CurrentRegion '数组取值范围
  8.     brr = Range("a2:a" & Range("a65536").End(xlUp).Row) '数组
  9.     x = Target '把触发单元格值赋给变量x
  10.     For i = 2 To UBound(arr) '循环数组行
  11.         For j = 2 To UBound(arr, 2) '列
  12.             zf = arr(i, 1) & "," & arr(1, j) '第一列+第一行
  13.             d(zf) = arr(i, j) '行列标题用字典对应该行列数值
  14.         Next
  15.     Next
  16.     For i = 1 To UBound(brr) '循环数组把字典对象赋值数组
  17.         brr(i, 1) = d(brr(i, 1) & "," & x)
  18.     Next
  19.     Target.Offset(1, 0).Resize(UBound(brr)) = brr '数组赋值单元格
  20. End If
  21. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:51 , Processed in 0.339932 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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