Excel 为什么我的粘贴比它应该的要向下2-1行?
我得到了一个项目,我需要在复制和粘贴基于以下内容的信息之前运行一些逻辑。这个逻辑很好,但我遇到的问题是,无论我做什么,我都无法使粘贴发生在正确的位置。它们在当前设置中为2x-1。我一直认为这与cell.row有关,但我所有的尝试、错误和测试都没有结果。如果有人有任何想法,我将不胜感激。将所有cell.Row更改为((cell.Row+1)/2)也不起作用 i、 e。 位于第12行,案例为0。它不会粘贴到第12行,而是粘贴到第23行。对于每个后续行,它将向下粘贴2行,而不是1行,使下一行为25行,依此类推Excel 为什么我的粘贴比它应该的要向下2-1行?,excel,vba,Excel,Vba,我得到了一个项目,我需要在复制和粘贴基于以下内容的信息之前运行一些逻辑。这个逻辑很好,但我遇到的问题是,无论我做什么,我都无法使粘贴发生在正确的位置。它们在当前设置中为2x-1。我一直认为这与cell.row有关,但我所有的尝试、错误和测试都没有结果。如果有人有任何想法,我将不胜感激。将所有cell.Row更改为((cell.Row+1)/2)也不起作用 i、 e。 位于第12行,案例为0。它不会粘贴到第12行,而是粘贴到第23行。对于每个后续行,它将向下粘贴2行,而不是1行,使下一行为25行,
Sub CopyClass()
'
' Macro2 Macro
'
Dim rng As Range, cell As Range
Set rng = Range("B12:B250")
'
For Each cell In rng
Select Case cell
Case Is = 0
cell(7, 2).Select
Selection.Copy
cell(cell.Row, 2).Select
ActiveSheet.Paste
Range("G7:R7").Select
Selection.Copy
Range(cell(cell.Row, 6), cell(cell.Row, 17)).Select
ActiveSheet.Paste
Case Is = 1
cell(8, 2).Select
Selection.Copy
cell(cell.Row, 2).Select
ActiveSheet.Paste
Range("G8:R8").Select
Selection.Copy
Range(cell(cell.Row, 6), cell(cell.Row, 17)).Select
ActiveSheet.Paste
Case Is = 2
If InStr(cell(cell.Row, 5), "IRA") > 0 Then
cell(10, 18).Select
Selection.Copy
cell(cell.Row, 2).Select
ActiveSheet.Paste
cell(9, 18).Select
Selection.Copy
cell(cell.Row, 6).Select
ActiveSheet.Paste
Range("H9:R9").Select
Selection.Copy
Range(cell(cell.Row, 7), cell(cell.Row, 17)).Select
ActiveSheet.Paste
Else
cell(10, 19).Select
Selection.Copy
cell(cell.Row, 2).Select
ActiveSheet.Paste
cell(9, 19).Select
Selection.Copy
cell(cell.Row, 6).Select
ActiveSheet.Paste
Range("H9:R9").Select
Selection.Copy
Range(cell(cell.Row, 7), cell(cell.Row, 17)).Select
ActiveSheet.Paste
End If
Case Else
cell(10, 2).Select
Selection.Copy
cell(cell.Row, 2).Select
ActiveSheet.Paste
Range("G10:R10").Select
Selection.Copy
Range(cell(cell.Row, 6), cell(cell.Row, 17)).Select
ActiveSheet.Paste
End Select
Next cell
End Sub
强烈建议你读一读。还建议避免使用
ActiveSheet.Paste
。您需要Range(cells(cell.Row,6)、cells(cell.Row,17))
而不是Range(cell(cell.Row,6)、cell(cell.Row,17))
谢谢!你知道为什么单元格离得这么远,而单元格却工作得很好吗?如果你使用单元格
而不是单元格
,你是在从每个单元格偏移,而不是在工作表上使用绝对位置。因此,如果cell.row
是4,那么cell(cell.row,1)
实际上比它低3行(因为cell(1,1)
是单元格本身)不知道这一点。谢谢你的信息。