|
本帖最后由 dmargon 于 2020-2-27 17:07 编辑
新手,不不不完全小白求助
有一份表格, 因为是对应不同地区的,所以之前都是做一份,比如美国版文件,然后再人工复制到加拿大,英国版里去。
每个表格虽然内容大同小异,但是略有不同。比如美国版里东西最多,加拿大和英国版里部分列是不需要的。
是否可以通过VBA实现自动复制功能?
所有数据再 “Template” 表中
可否做到以下步骤?
(所有 数据是从第4行开始的,前3行不能复制过去,第4行开始有数据,但是不一定每一列都有数据,有些列是空白的,具体行数不固定)
- 复制美国.xlsm B-G列,有数据的行,黏贴到加拿大.xlsm B-G列
- 复制美国.xlsm I-AA列,有数据的行,黏贴到加拿大.xlsm I-AD列
- 复制美国.xlsm AL列,黏贴到加拿大.xlsm AE列
- 复制美国.xlsm AN-BO列,黏贴到加拿大.xlsm AG-BH列
- 填充加拿大.xlsm A列和H列,前几行本身有数据(都一样),复制黏贴到其它所有带数据的行
- 自动替换表格里,I列和D列,AW列的值,这段我刚搜索,似乎有点谱了,我用的以下代码,这样弄可以吗?
(另外问下,非常白痴的问题,这上面列举的文件名,都是泛指的,实际操作的时候,比如文件名后面肯定还会有具体日期编号,比如美国20200227,加拿大20200227,需要保持文件名不动吗?)
- Sub 批量替换()
- '
- ' 批量替换 宏
- '
- ' 快捷键: Ctrl+shift+r
- '
- Range("I4:I500").Select
- Selection.Replace What:="9.99", Replacement:="7.99"
- Selection.Replace What:="11.49", Replacement:="8.99"
- Selection.Replace What:="11.9", Replacement:="9.5"
- Selection.Replace What:="13.5", Replacement:="10.5"
- Selection.Replace What:="12.9", Replacement:="10.5"
- Selection.Replace What:="14.5", Replacement:="11.5"
- Selection.Replace What:="14.9", Replacement:="11.9"
- Selection.Replace What:="16.5", Replacement:="12.9"
- Selection.Replace What:="15.9", Replacement:="12.5"
- Selection.Replace What:="17.5", Replacement:="13.9"
- Selection.Replace What:="16.9", Replacement:="13.5"
- Selection.Replace What:="18.5", Replacement:="14.5"
-
- Range("D4:D500").Select
- Selection.Replace What:="8.3x11.7 A4", Replacement:="A4 21x29cm"
- Selection.Replace What:="11.7x12.9 A3", Replacement:="A3 29x42cm"
-
- Range("AF4:AM500").Select
- Selection.Replace What:="OZ", Replacement:="GR"
- Selection.Replace What:="4", Replacement:="120"
- Selection.Replace What:="0.7", Replacement:="20"
- Selection.Replace What:="1.2", Replacement:="35"
- Selection.Replace What:="0.02", Replacement:="0.5"
- Selection.Replace What:="11.7", Replacement:="29.7"
- Selection.Replace What:="8.3", Replacement:="21"
- Selection.Replace What:="12.9", Replacement:="42"
- Selection.Replace What:="IN", Replacement:="MM"
- End Sub
复制代码
我第一次用是CELLS.REPLACE代码,后来不知道该怎么加定位,就换成上面了,请问这两种有什么区别吗?
- Cells.Replace What:="9.99", Replacement:="7.99", LookAt:=xlPart, SearchOrder _
- :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
复制代码
跪谢大神,这些表格一天到晚做,都是人工,看的头昏眼花,而且电脑也不太行,经常缓不过来。
|
|