2016-12-01 84 views
-1

所以我目前有三个工作簿,我在桌面上创建了一个文件夹,以及在哪里使用工作簿x,通过单元格上的范围打开名为m(旧)的工作簿, n(新)。然后我用新的更新旧的。在工作簿之间复制和粘贴

问题

一旦我已经打开了m,我有做一个另存为文件的NEWNAME的。我很想知道是否有方法在不使用工作簿新名称的情况下引用它,因为此工作簿名称将与今天的日期连接在一起,并且该名称可能非常耗时并且非常耗时。我制作了几个子程序,一个去除保护等。和一个用于执行应对操作,我打电话给子程序,我只是想现在如果有方法将newsaved名称链接到引用的一些子程序。或者,旧文件可以保存在最后。我热衷于追求这条道路,因为我会在其他一些场合玩四本练习册。

我已经采取了这些代码并对其进行了修改,但是我无法打开这两个电子表格,当我屏蔽代码并通过测试时,他们工作的每个路径都工作,但不是同时。

这是我修改了代码,这是我能在

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 

发现这是我的代码,它是不开放这两个工作簿

Dim wb as Workbook 
Dim wb1 As Workbook, wb2 As Workbook 
Dim ws as Worksheet, ws1 As Worksheet, ws2 As Worksheet 
Dim Lst As Long, 
Dim r1, r2 As Range 

Set wb = ThisWorkbook 
Set wb1 = Workbooks.Open("Sheets("x").Range("A4").Value") 
Set wb2 = Workbooks.Open("Sheets("x").Range("A5").Value") 
With wb2 
Call Wbkunprtect() 

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

我从这个网站学到了很多东西,我之所以问一些问题,是因为我不愿意使用select或activate,因为我被告知这是一个你必须避开的坏习惯。

+0

保存之后,您可以将其称为“ActiveWorkbook”,直到您打开或选择其他工作簿。 – user3598756

+0

我不想使用ActiveWorkbook或选择或激活,你可以拿出其他解决方案吗 – user3287522

+0

工作簿变量? – vacip

回答

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对象包含所有打开工作簿的所有实例,因此您可以通过此对象获取任何其他工作簿的引用。

至于使“全球通”,你可以声明它之外的“亚健康”的范围,所以变量将是永久性的,只要模块(或任何你把你的代码)是这样的开放:

public wb as Workbook 

Sub <your_routines>() 
... 
End Sub 
相关问题