Excel工作表中的CSV导入将120列替换为10列

n3schb8v  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(101)

我有一个外部csv文件和一个xlsb工作簿,有两个工作表。表1有120列,表2有计算表1信息的相关财务比率的公式。
在工作表1中的120列中,我需要10列来创建包含公式的工作表2。我在csv中有这10列(使用Python df减少了它)。
我想使用VBA将csv中的这10列粘贴到工作表1中的120列之上,并删除工作表1中的110个不必要的列。同时,第2页中的公式应保留,并计算财务比率。
我的代码是将这10列粘贴到120列的顶部,但它不会删除110列。

Sub UpdateSource()

Set wb = ActiveWorkbook
Set src = Workbooks.Open("csv file")

With wb
    src.Sheets(1).UsedRange.EntireColumn.Copy
    .Sheets(1).Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
    With .Sheets(2)
        .Activate
        .Calculate
    End With
End With

src.Close
wb.Save

End Sub
qoefvg9y

qoefvg9y1#

在粘贴新数据之前,您需要删除旧数据,然后粘贴新数据。
我建议首先计算wb中最后一行的数据,然后用这个数字删除该范围的数据。

src.Sheets(1).UsedRange.EntireColumn.Copy

With wb.Sheets(1)

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

     .Range("A1:A" & lastRow).ClearContents

     .Range("A1").PasteSpecial xlPasteValuesAndNumberFormats

End With

相关问题