从另一个工作簿复制/覆盖工作表

时间:2019-08-08 22:02:14

标签: excel vba copy-paste

我想在覆盖现有工作表的同时从另一个工作簿复制工作表。

我可以复制工作表,但是会创建一个新的工作表。目标工作簿包含其他工作表,这些工作表使用wb_target中已经存在的工作表(应该覆盖)来引用要评估的数据;因此“删除”,“重命名”将不起作用,因为删除旧表后引用会丢失。

代码在这里:

With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1
    .Show
    fullpath = .SelectedItems.Item(1)
End With
If InStr(fullpath, ".xls") = 0 Then
    Exit Sub
End If
Workbooks.Open fullpath

Sheets("ws_source").Copy Before:=Workbooks("wb_target.xlsm").Sheets("ws_target")

newfilename = Left(fullpath, Len(fullpath) - 4) & "_new.xls"
ActiveWorkbook.SaveAs Filename:=newfilename

此代码有效,但我需要覆盖ws_target而不是在wb_target中创建ws_source。

1 个答案:

答案 0 :(得分:0)

第一种方式

  1. 复制工作表
    1. 将所需名称保存为变量
    2. 删除要删除的工作表
    3. 使用先前存储的名称变量重命名您复制的图纸。

您不能实际“覆盖工作表”。

第二种方式

您还可以采用其他方式:

  1. 使用以下类似的方法删除目标工作表中的所有内容:

    VRadio tags
  2. 将所有内容从源工作表复制到目标工作表

    slot-scope is undefined.