【问题标题】:copying and pasting values in to same row in mastersheet将值复制并粘贴到母版表的同一行
【发布时间】:2016-06-13 16:32:28
【问题描述】:

我有以下代码,它从名为 copySheet 的工作表复制和粘贴列,并将名为 pasteSheet 的工作表粘贴到第一个空行。

 lRow = copySheet.Cells(copySheet.Rows.Count, 1).End(xlUp).Row

  With copySheet.Range("BX2:BX" & lRow)
   pasteSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
 .Resize(.Rows.Count, .Columns.Count) = .Value
  End With

 'Determine last row of Column B in copySheet
  lRow = copySheet.Cells(copySheet.Rows.Count, 1).End(xlUp).Row

 With copySheet.Range("CC2:CC" & lRow)
 pasteSheet.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0)
.Resize(.Rows.Count, .Columns.Count) = .Value
 End With

现在我想从“copySheet”中复制 BB 列(从 BB2 开始)和 AK(从 AK2 开始)并将其粘贴到“pasteSheet”中的 L 列。 BB 和 AK 值应在同一单元格中彼此之间有一个空格。有谁知道我该怎么做?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    听起来您想获得 2 个单元格,用空格将它们连接在一起,然后将该值设置到另一个工作表中?您可以使用For 循环轻松完成此操作:

    For myLoop = 2 to lRow 
        ' recalc firstEmptyRow and increment to get first empty row
        firstEmptyRow = pasteSheet.Cells(pasteSheet.Rows.Count, "L").End(xlUp).Row + 1
        myVal = copySheet.Range("BB" & myLoop).Value & " " & _
        copySheet.Range("AK" & myLoop).Value
        pasteSheet.Range("L" & firstEmptyRow).value = myVal 
    Next
    

    在这种情况下,我假设您希望将值发布到您在 copySheet 中复制的 pasteSheet 中的同一行;如果没有,您将不得不更改pasteSheet.Range 行中的位置

    【讨论】:

    • 谢谢!我有一个问题想;我实际上希望它被粘贴到该列中的第一个空行,那么我应该选择什么作为 pasteSheet.Range 呢?
    • pasteSheet.Range("L" & lRow + 1).value = myVal 将粘贴到L 中的第一个空工作表中
    • 您可能还想在设置值后重新计算lRow,否则您将继续将该值粘贴到L列中的同一单元格中
    • 我已经编辑了答案以展示我将如何处理它。在每个循环开始时将lRow 设置为最后一行加1,您将始终粘贴到L 中的第一个空行中
    • 我现在检查了一下,我有 5 个复印表,所以我通过复制/粘贴并将代码更改为 copySheet1、copySheet2... 直到 copySheet5 使用了 5 次。但是它复制和粘贴更多的东西然后它应该复制/粘贴。这是什么原因?
    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2018-12-21
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多