【问题标题】:VBA Paste array of cells between Workbooks at last Populated row (Paste not working?)VBA 在最后填充行的工作簿之间粘贴单元格数组(粘贴不起作用?)
【发布时间】:2021-08-04 15:21:51
【问题描述】:

我正在尝试将一组数据从 csv 文件复制到“PowerBI_table”工作表中单独工作簿中的下一个可用行(从 V 列开始)。当我通过代码 F8 时,没有出现错误代码,并且信息是从 csv 文件中复制的——但是它不会将数据粘贴到工作簿中。结束宏后,工作簿中突出显示的单元格数组为空。

你会如何纠正这个问题? 代码如下,图片附上。

Sub copyWB2()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim lastRow_PowerBI_Table As Long
Dim lastRow_csv_file As Long


Set ws1 = Workbooks("stats.csv").Sheets("stats")
Set ws2 = Workbooks("Dig_File.xlsm").Sheets("PowerBI_Table")

lastRow_PowerBI_Table = ws2.Cells(Rows.Count, "V").End(xlUp).Row
lastRow_csv_file = ws1.Cells(Rows.Count, "A").End(xlUp).Row

ws1.Activate
If IsEmpty([A2]) = False Then
ws1.Range("A1:G" & lastRow_csv_file).Copy ''' pick up here
ws2.Range("V" & lastRow_PowerBI_Table).PasteSpecial Paste:=xlPasteFormats
Workbooks("stats.csv").Close SaveChanges:=False
Else: MsgBox ("Error...This Workbook is Empty")
Workbooks("stats.csv").Close SaveChanges:=False
End If
End Sub

【问题讨论】:

  • 为了澄清,工作表本身已正确命名。所以这不是问题。

标签: excel vba debugging copy-paste paste


【解决方案1】:

更新:问题似乎是我试图开始粘贴的行中已经存在数据。快速解决方法是进行以下更新:

'Not really the last row, but the first empty row now. 
    lastRow_PowerBI_Table = ws2.Cells(Rows.Count, "V").End(xlUp).Row + 1
    ws1.Range("A1:G" & lastRow_csv_file).Copy ws2.Range("V" & lastRow_PowerBI_Table)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多