所以我目前有三个工作簿,我在桌面上创建了一个文件夹,我在使用工作簿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我已经完成了我的代码,这是阻止我继续前进的一点。
我从这个网站上学到了很多我之所以提出某些问题的原因,因为我不愿意使用选择或激活,因为我被告知这是一个你必须远离的坏习惯。
答案 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