jipingzhuang 发表于 2012-7-9 19:57
麻烦帮忙看看,谢谢。。在线坐等
ARR11(I, 6) = Mid(ARR1(I, 5), 1, InStr(ARR1(I, 5), "户") - 1) '提取简称
中 i=1 时 ARR1(I, 5) 里的值是 "物料名称" ,这时面是没有 "户" 字的,所以提示
"无效的参数或调用过程"
关于你说的改名后还能不能用,首先,工作表的几种表示方式你要明白
第一种 codename
通常我们会看到别人这样写代码 sheet1.range("A1")
这里的 sheet1 就是工作表的 codename
使用这种方式的好处是
1,有自动成员列表,如果没有,可以按 Ctrl + J 如果 sheet1 不存在,即使按了也不会出来自动成员列表
2,代码处理数据时,不会受到 改变工作表名称的影响
3,代码处理数据时,不会受到 工作表位置的影响
第二种 sheets("名称")
这种就是你现在用的 sheets("Data")
这种的好处是,我们知道每个工作薄中都有一个这样的名称,那么代码就可以直接操作,
如果是用 Codename 那么每个工作薄的 Data 工作的Codename 是有可能不一样的,这时候就应该考虑使用这种方法
第三种 sheets(顺序)
有时候会见到 sheets(1).range("A1")
这里需要注意的是,sheets(1) 和 sheets("1") 是不一样的
使用了 "" 就成了表的名称了,不使用 "" 就是表的顺序
这里的顺序是指左下角,从左往右 升序排列,如果中间有隐藏的,顺序依然不变
如第二张表的名称是 Data 你将其隐藏后, sheets(2).name 依然是 Data
这种的发处是,我们知道每个工作薄中的第1张表都是需要处理的表,那就可以直接使用 sheets(序号) 的表示方式来写
三种表式方式,各有优点,若要使用自动成员列表,只有使用 第一种方式
你搞清楚了这三种方式,就能找到最适合自己用的方式了
|