从一个工作表复制并粘贴到另一个工作表

帝斯曼

我正在整理不同工作表的数据。

问题是将数据复制到目标文件时,所有数据都放在一列中。

下面的代码是发生问题的部分的片段。

Workbooks.Open (Folderpath & Filename)
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Lastcolumn = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(Lastrow, Lastcolumn)).Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close
erow = ThisIsAWS.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ThisIsAWS.Paste Destination:=ThisIsAWS.Range(Cells(erow, 1), Cells(erow, Lastcolumn))
Filename = Dir

这就是文件最初的外观。
资源

经过宏之后,它最终像这样结束。
![目的地

当我使用相同的数据手动复制(ctrl + c)和粘贴(ctrl + v)的位置时,结果很好。

对于源文件,数据可能已放置在表中,所以这对为什么它最终位于目标文件的一列中有作用吗?

编辑:源图片。我可能已经找到了问题,但仍然需要解决方案。B和C列在此图中合并在一起。可以吗?

VBA皮特

您的宏对我来说很好。但是,您可以尝试使用.value而不是将范围设置为相等.copy

Dim to_rng as Range
Dim rng_loop as Range

Workbooks.Open (Folderpath & Filename)
    Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Lastcolumn = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
    Application.DisplayAlerts = False
    erow = ThisIsAWS.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    Set to_rng = ThisIsAWS.Range(ThisIsAWS.Cells(erow, 1), ThisIsAWS.Cells(erow + Lastrow - 2, Lastcolumn))
    to_rng.value = ActiveSheet.range(ActiveSheet.cells(2,1), ActiveSheet.cells(Lastrow, Lastcolumn)).value

    For loop1 = Lastcolumn To 1 Step -1
        Set rng_loop = ThisIsAWS.Range(ThisIsAWS.Cells(erow, loop1), ThisIsAWS.Cells((erow + Lastrow - 2), loop1))
        If WorksheetFunction.CountA(rng_loop) = 0 Then
            rng_loop.Delete shift:=xlToLeft
        End If
    Next loop1

    ActiveWorkbook.Close
    Filename = Dir

循环在添加的范围中的每一列中向后移动(步骤-1),并且如果range列中的所有单元格都为空(CountA = 0),则通过将整个行向左移动来删除该列。

原始数据:

在此处输入图片说明

数据已添加到其他文件:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

VBA从一个工作簿复制并粘贴到另一个

将多个工作簿中的数据复制并粘贴到另一个工作簿中的工作表中

宏可将行复制并粘贴到另一个工作表中,而无需粘贴到页面下

Excel VBA将特定的单元格复制并粘贴到另一个工作表

宏VBA根据标题复制列并将其粘贴到另一个工作表中

Excel VBA复制多个范围并粘贴到另一个工作表,没有空行

将值复制并粘贴到另一个工作表excel宏

输入表格,Excel,VBA复制输入并粘贴到另一个工作表中

如何通过匹配单元格值将范围复制并粘贴到另一个工作表

更加优雅地遍历工作表查找,复制和粘贴到另一个工作表

将具有一个工作表中的值的动态变量列复制并粘贴到另一个工作表中

Excel:创建一个宏以将活动选择复制并粘贴到另一个工作表中

Google表格+ Apps脚本,从一个工作表复制/粘贴到另一个工作表,但粘贴到特定列(B)中的第一个空单元格中

将具有公式的范围复制/粘贴到另一个工作表

将一个单元格从一个工作表复制并粘贴到另一个工作表,然后将其乘以一个值

复制一个工作表中的单元格范围,并将其作为值而不是公式粘贴到另一个工作表中

将特定单元格从一个工作表复制并粘贴到另一个工作表

如果值匹配,如何复制并粘贴到另一个工作表-Excel VBA

复制特定单元格并粘贴到另一个工作表中

手动将日期格式从一个 Excel 工作表复制/粘贴到另一个时出现问题

通过 VBA 将值复制并粘贴到另一个工作表

将公式复制到另一个工作表并将其作为值粘贴到特定列

VBA 复制范围值并粘贴到另一个工作表中

从打开的工作簿的指定工作表复制数据并将其粘贴到另一个已关闭工作簿的指定工作表

如何从另一个工作表复制图片并粘贴到单元格注释中

用于在最后一条记录后复制并粘贴到另一个工作表的 Google Sheets 脚本

根据特定条件将特定单元格值从一个工作表复制粘贴到另一个工作表

编辑特定标签时将谷歌工作表复制并粘贴到另一个谷歌工作表

根据用户输入从另一个工作表复制一行并粘贴到另一个工作表上