在工作簿之间复制和粘贴

时间:2016-12-01 20:42:34

标签: excel vba excel-vba

所以我目前有三个工作簿,我在桌面上创建了一个文件夹,我在使用工作簿x,通过单元格上的一个范围来打开名为m(旧)的工作簿和名为{的工作簿{1}}(新)。然后我用新的更新旧的。

问题

我打开n后,我不得不在文件中保存为新名称。我很想知道是否有方法在不使用工作簿newname的情况下引用它,因为这个工作簿名称将与今天的日期连接,并且名称可能很长且耗时很长。我已经制作了几个子程序,一个用于去除保护等。一个用于执行应对操作,我正在调用子例程,我现在只想将新闻保存的名称链接到引用的一些子例程。或者,旧文件可以保存在最后。我渴望继续这样的途径,因为我将在其他一些案例中使用四本练习册。

我已经使用了这段代码并对其进行了修改,但是我无法打开两个电子表格,当我阻止代码并通过测试时,这对我们工作的每条路径都有效,但同时又不行。

这是我修改过的代码,我可以在

中找到
m

这是我的代码,它没有打开两个工作簿

Dim x As Workbook, y As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet

Set x = Workbooks.Open("path to copying book")
Set y = Workbooks.Open("path to pasting book")

Set ws1 = x.Sheets("Sheet you want to copy from")
Set ws2 = y.Sheets("Sheet you want to copy to")

With ws1   
    .Cells.Copy ws2.cells
    y.Close True
    x.Close False
End With

End Sub

我会感激一些帮助,对于那些触发快乐的人,请你按下向下箭头,我们中的一些人不擅长知识,也试图学习,不想被禁止提问,我试图在两个工作簿wb1和wb2之间移动数据,通过另一个wb我已经完成了我的代码,这是阻止我继续前进的一点。

我从这个网站上学到了很多我之所以提出某些问题的原因,因为我不愿意使用选择或激活,因为我被告知这是一个你必须远离的坏习惯。

1 个答案:

答案 0 :(得分:0)

根据我的理解,您需要使用WorkBook对象! WorkBook对象将具有新添加的工作簿的实例。它很简单:

Sub example_new_workbook()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    wb.SaveAs ("path where you want to save")
End Sub

那样," wb"将拥有新工作簿的实例,您可以自由地引用该新工作簿。请记住,WorkBooks对象包含所有打开的工作簿的所有实例,因此您可以通过此对象获取任何其他工作簿的引用。

至于" Global",您可以在" Sub"之外声明它。范围,因此只要模块(或您放置代码的任何地方)打开,变量将是永久性的:

public wb as Workbook

Sub <your_routines>()
...
End Sub