我有一个像这样的代码块:
Range("C3").Select
Application.CutCopyMode = False
Selection.Copy
Range("S3:BL3").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Range("C4").Select
Application.CutCopyMode = False
Selection.Copy
Range("S4:BL4").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
... and so on until row 257
代码中唯一改变的部分是我选择的范围,所以我知道我可以编写一个循环来完成这一点,而不必在所有其他代码中重复自己,但我真的不确定从哪里开始。
我想做一些这样的计数器,但我知道我不能只是把变量"x"放在列字母旁边,让它重复这个过程:
For x = 3 to 256
Range("Cx").Select
Application.CutCopyMode = False
Selection.Copy
Range("Sx:BLx").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
要回答你关于"我不能只放x"的难题,当然你可以,用串联。Range("C" & x)
将提供您正在寻找的内容。
但是,根据你给出的例子,你似乎知道你想要迭代的范围;为什么不选择一次范围,然后粘贴一次范围呢?
Range("C3:C256").Select
Application.CutCopyMode = False
Selection.Copy
Range("S3:BL256").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False