情况说明: 我原来的表格行数很多,但下一行和上一行相同的地方也比较多,完全不同的只有 J列《长度》和 k列《数量重量》,只有这两列的数据每行都要填,(大多数的数据基本上都是自动生)。原来用函数公式执行以下功能,但因为行数太多,表格反应非常慢,所以想换成VBA来解决)我的数据从第三行开始,6万行结束。
总目标:我想在k列《数量重量》 输入数据时 A列/ B列/ C列 /D列/ E列/ F列/ G列/ H列/ I列 分别达到以下功能:
1) A列《ID号》(从A3开始),K列每输入一个数据,A列能自动输入一个ID号 (从1开始,6万结束)
2) C列《客户》(从C3开始),K列每输入一个数据,《客户列》默认等于上一个单元格【如 C4=C3/c5=c4/c8=c7等】 ,在C列除了默认等于上一个单元格外,还要允许手工填写《新的客户》【 如C3 /C6/C7等 】
3) E/F/G/H/I这五列的要求一样,在k列输入数据,如果 C列(客户名称一致) ,他们默认等于上一个单元格【例如:当在K4输入数据时,如果C4=C3时,则E4=E3/F4=F3/G4=G3/H4=H3/I4=I3.】但也可以不同,允许手工输入【如C21=C20但E21不等于E20】(这五列功能一致,但要单独运算)
4)B列《订单编码》,当在k列输入数据,是根据C列《客户》的变化生成新的编码【如C6不等于C5,则B5生成了新的编码,如C7不等于C6,则B7生成了新的编码,C5=C4=C3所以B5=B4=B3】
5)D列《订单日期》当在k列输入数据,是根据C列《客户》的变化生成新的时间【如C6不等于C5,则D5生成了新的系统时间,如C7不等于C6,则D7生成了新的时间】如果客户名称不变,时间等于上一单元格【如C5=C4=C3所以D5=D4=D3】,时间一旦输入,就不变,除非手工改动
以上是我的要求,如果一个代码能全部解决最好,如果只能解决部分功能,也请解答,人多力量大吗!我都会加分的
二 这一行的(C列)的单元格不等于上一行的单元格时, ⑴ 如果这一行(E列 / F列 / G列 /H列/ J 列 / I列) 单元格内是空格,保持空格。⑵ 如果这一行(E列 / F列 / G列 /H列/ J 列 / I列) 单元格内 有数据,保留数据
不好意思,我明天测试
根据你的描述 做了一个示例 看看能否符合 你的需求吧!
程序主要是 针对 数量重量 列 以及 客户 列 数据的变化来自动实现你描述需要的变化 客户可以再次修改……你可以 数一下数据 试验一下哦
这里 第三行应该是 预先输入一个数据 从第四行开始 才有你说的那个样子哦……
如果 还有什么问题的话 你再追问吧!
祝你快乐!
该代码在实际应用中,如果在(K列)的某一行输入数据时,如果这一行的(C列)的单元格等于上一行的单元格,则(E列 / F列 / G列 /H列/ J 列 / I列 )默认等于上面一个单元格。在该代码中已经完全实现。但他有一个问题,就是如果这些单元格内有数据,原来的数据就被清除了。
如果在(K列)的某一行输入数据时
一
这一行的(C列)的单元格等于上一行的单元格:
⑴ 如果这一行(E列 / F列 / G列 /H列/ J 列 / I列 )单元格内是 空格 ,则默认等于上一行的单元格。⑵如果这一行(E列 / F列 / G列 /H列/ J 列 / I列 )原来的单元格内有数据,则保留这些数据。
我觉得 其实 E~I 列 其实完全没有必要 用程序处理 因为 我觉得 最重要的 还是 前面那B~D 这三列 你要保持一个 “规则性”,后边的 各列 我觉得 应该都是变化的 即使等于上面得了 也要进行修改的……你说是不是?
已经修改了一下 按着你说的 这些新的要求!
不过 我建议 你把对这几列的数据处理的代码删除掉比较好 完全用手工输入 !