Excel精英培训网

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

[分享] Excel联想输入2012(更新应用版)

  [复制链接]
发表于 2012-10-17 15:09 | 显示全部楼层
谢谢楼主提供,回复看帖!!
回复

使用道具 举报

发表于 2012-10-21 01:05 | 显示全部楼层
回复

使用道具 举报

发表于 2012-10-24 10:39 | 显示全部楼层
回复

使用道具 举报

发表于 2012-10-24 11:04 | 显示全部楼层
学习,学习
回复可见
回复

使用道具 举报

发表于 2012-11-9 10:12 | 显示全部楼层
怎么牛的帖怎么不顶起
回复

使用道具 举报

发表于 2012-11-9 10:37 | 显示全部楼层
老湿
      输了16行后,就联想不出来了,能帮我看看不。

管材库存管理.zip

47.67 KB, 下载次数: 45

回复

使用道具 举报

 楼主| 发表于 2012-11-19 00:04 | 显示全部楼层
hp002 发表于 2012-11-9 10:37
老湿
      输了16行后,就联想不出来了,能帮我看看不。

很抱歉,今天才看到你的信息,对于你的问题,主要有以下两点

1,数据源设置地址 E1:I  ,代码是以 ":" 以后的列为基础提取的数据
  也就是说,初始过程是根据你的 I  列使用情况来提取的数据区域,并非 E 列,
  你的I列里有很多是空白的单元格,这导致了提取到的数据源不完整

2,range.end 方法,在使用时,目标工作表中是不允许有 隐藏行.或者隐藏列的
  正如你的附件,你使用了筛选,隐藏了很多行的内容,并且恰好始 I 列中都没有了内容,只有一个标题行存在,
所以数组 arr 取到的只有第一行的值,也就是数组仅取到了标题行,

这就是为什么"不起作用" 了!

根据你的数据源,可以修代码

  1. Hx = Sheets(Bm).Cells(65536, Right(Dz, 1)).End(xlUp).Row  '提取使用的最大行
  2. '改为:
  3. Hx = Sheets(Bm).Range(Split(Dz, ":")(0)).End(xlDown).Row
复制代码
也就是将原来从 I65536 往上查找改为从 E1 开始往下查找

无论是往上还是往下,都需要注意几点
1,查找的列中,数据不允许 有空单元格存在,
   正如你的 I列中,存在很多空单元格,这样无论使用那种方法,取到的数据都不准确
2,表中不允许有 隐藏的行或者列存在
   使用.row属性,则不允许有隐藏行;使用.column则不允许有隐藏列存在,否则会影响查找结果

3无论使用那种方法,至少应该确定数据源中有2行数据(含标题行)


回复

使用道具 举报

发表于 2012-11-19 00:55 | 显示全部楼层
非常感谢您奥  学习了
回复

使用道具 举报

发表于 2012-11-19 09:32 | 显示全部楼层
挺不错的!
建议:
If InStr(Arr(I, Lx), Tex) > 0 Then    '按拼音简写查找
改成:
If InStr(Arr(I, Lx), LCase(Tex)) > 0 Then    '按拼音简写查找
理由你懂的

评分

参与人数 1 +21 收起 理由
无聊的疯子 + 21 查了下LCase帮助,发现真的很实用啊!!用了.

查看全部评分

回复

使用道具 举报

发表于 2012-11-27 08:52 | 显示全部楼层
{:011:}感谢老斯啊。{:101:}
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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