我有一段代码如下:
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
答案 0 :(得分:0)
要回答你关于“我不能只放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