首页 > 解决方案 > 将复制粘贴过程从两个位置合并到一个位置

问题描述

如何合并将两个位置的值粘贴到一个位置的过程?例如在下面的子代码中。我想合并这两行并只想粘贴到 destSht

C.Offset(1, 8).FormulaR1C1 = "=RC[-6]"
destSht.Cells(destSht.Rows.Count, 
 7).End(xlUp).Offset(2, 1) = C.Offset(1, 8).Value

上面的代码是下面代码的子代码

Set destSht = Worksheets("Final")
  With ActiveSheet

  For Each C In .Range("A17", .Cells(.Rows.Count, "A").End(xlUp))
  If .Cells(C.Row, "A") = "Element: Linear" Then
  C.Offset(1, 7).Value = "Straight"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 0) = C.Offset(1, 7).Value

  C.Offset(1, 8).FormulaR1C1 = "=RC[-6]"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 1) = C.Offset(1, 8).Value

  C.Offset(1, 9).FormulaR1C1 = "=RC[-5]"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 2) = C.Offset(1, 9).Value

  ElseIf .Cells(C.Row, "A") = "Element: Circular" Then
  C.Offset(3, 6).FormulaR1C1 = "=R[3]C[-4]"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, -3) = C.Offset(3, 6).Value

  C.Offset(3, 7).Value = "Arc"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 0) = C.Offset(3, 7).Value

  C.Offset(3, 8).FormulaR1C1 = "=R[-2]C[-6]"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 1) = C.Offset(3, 8).Value

  C.Offset(3, 9).FormulaR1C1 = "=R[-2]C[-5]"
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(2, 2) = C.Offset(3, 9).Value

标签: excelvba

解决方案


终于弄对了

 With Worksheets("Source")     
 For Each C In .Range("A17", .Cells(.Rows.Count, "A").End(xlUp))
If .Cells(C.Row, "A") = "Element: Linear" Then
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(1, 0) = "Straight"
  C.Offset(1, 2).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 1)
  C.Offset(1, 3).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 3)
  C.Offset(1, 4).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 2)
  C.Offset(3, 2).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 8)
ElseIf .Cells(C.Row, "A") = "Element: Circular" Then
  destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(1, 0) = "Arc"
  C.Offset(1, 2).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 1)
  C.Offset(1, 3).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 3)
  C.Offset(1, 4).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 2)
  C.Offset(14, 2).Copy Destination:=destSht.Cells(destSht.Rows.Count, 7).End(xlUp).Offset(0, 8)

推荐阅读