使用 VBA 将多个单元格粘贴到一个单元格中

Posted

技术标签:

【中文标题】使用 VBA 将多个单元格粘贴到一个单元格中【英文标题】:Paste multiple cells into a single cell using VBA 【发布时间】:2019-04-16 11:15:23 【问题描述】:

我正在尝试编写几个按钮来帮助将信息归档为整洁的数据。 但该值分布在几行中。

我需要它进入一个单元格。 如果我可以清除所有格式的复制数据并将粘贴工作簿用作格式“给予者”,也会膨胀

我对编码很陌生,主要是阅读和复制粘贴的信息。没有尝试任何有价值的东西

Sheet4.Range("D25", Workbooks("Underlag.xlsm").Worksheets("EU").Cells(Rows.Count, "D").End(xlUp)).Copy Workbooks("Arkiv.xlsm").Worksheets("EU").Range("E" & Rows.Count).End(xlUp)(2)

预期的结果是必须将复制的数据放入单个单元格中, 实际结果是它分散在行上,破坏了其他按钮的数据。

【问题讨论】:

那是你的实际代码吗? Destination 在新行上,上一行不以 _ 结尾? 不知道会是整行,预览骗了我。将其编辑为正常。 您正在专门复制一系列单元格。如果您只想在目标中占用一个单元格,请复制一个单元格以开始。 您有什么建议如何创建一个循环来逐行检查数据并将其添加到前面的问题中吗?如果单元格 1 不为空,则转到单元格 2 如果单元格 2 不为空 Cell 1 & Cell 2 = Sheet.cell 1 【参考方案1】:

也许你可以试试这个:

Sub test_paste()

    Dim allData As String
    Dim rng As Range
    Dim cell As Range
    Dim pasteRng As Range

    Set rng = Sheet4.Range("D25", Workbooks("Underlag.xlsm").Worksheets("EU").Cells(Rows.Count, "D").End(xlUp))
    Set pasteRng = Workbooks("Arkiv.xlsm").Worksheets("EU").Range("E" & Rows.Count).End(xlUp)

    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            allData = allData & cell & " "
        End If
    Next

    pasteRng = allData

End Sub

它将原始范围内每个单元格的值附加到一个字符串中,然后将该字符串放入所选单元格中。 注意:我只在一张纸上试过这个,而不是在不同的工作簿中

【讨论】:

以上是关于使用 VBA 将多个单元格粘贴到一个单元格中的主要内容,如果未能解决你的问题,请参考以下文章

Vba找到第一个空单元格并平均它上面的4个单元格并将值粘贴到另一个单元格中

搜索包含文本的单元格并在下一个空白单元格中粘贴值

MAC VBA尝试从每个工作表中剪切一个单元格并粘贴到下一个空单元格中的另一张表中

使用VBA在Excel填充单元格中插入多个图像,但保持宽高比

用vba实现 从一组单元格中取出文本

将多个值写入一个单元格 - VBA