当我尝试和VBA打开一个新的工作簿 - 基于我的个人宏工作簿宏 - 使用:workbooks.add在VBA系统中打开两个工作簿
Workbooks.Add
系统地打开了两个工作簿。
当我尝试使用类似相同的:
Workbooks("book1").Activate
它的作品很少,因为这个词“书”后的数字指标很少匹配的“BOOK1”。
我的最终目的是自动命名创建的工作簿。但是,vba最终命名为第二个空的工作簿,而不是第一个可取的工作簿。
我有Office 365家庭版。
完整的代码是:
********************
Sub ExportNameAndSave()
ActiveWindow.Activate
ActiveSheet.Select
Dim lastrow As Range
Dim lastcolumn As Range
Dim refnumber As String
refnumber = Range("b4").Value
Range("A1", Range("a60000").End(xlUp)).Select
Set lastrow = Selection
Range("A1", Range("a1").Offset(0, 50).End(xlToLeft)).Select
Set lastcolumn = Selection
Range(lastrow, lastcolumn).Select
Selection.Copy
Workbooks.Add
ActiveWorkbook.Activate
ActiveWorkbook.SaveAs Filename:="D:\Common Area\" & refnumber & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
********************
注意:我已经通过数十个技巧在这个论坛的人遇到类似的问题时,他们在Excel中从菜单中打开工作簿。他们不工作。
请注意,我的问题是关于使用vba代码打开工作簿。
该宏一直工作到Workbooks.Add
之前。
然而,在这一点上,这是发生了什么:
1)它创建了一个新的工作簿和出口包含在最初的工作簿到这个新工作表中的INTIAL片的内容 - 这正是我想要的;
2)然后它打开第二张工作表 - 这不是我想要的 - 并且在命令“ActiveWorkbook.Activate”中,它选择第二个不需要的工作簿,并实际上成功命名并保存它。
因此,我有一个成功命名和保存的文件,但它没有内容,因为第二个工作簿是空的。我想要的是命名并保存包含导出内容的第一个工作簿。
注意:此子效果很好,当我关闭我所有的Excel工作簿,当我重新开放只是开始工作簿,当我更换行“Workbooks.Add”与“'工作簿(‘BOOK1’)。激活“,例如。
但是,由于上述原因,这不会给出可重复的,可靠的结果。
任何帮助,将不胜感激。
阅读您的文章后,我仍然困惑,你想达到什么目的?你想复制'ActiveSheet'(这已经不是建议)到一个新的工作簿?你想通过代码创建这个新的工作簿?用这行“Workbooks.Add”? –
快速查询。你正在复制范围,但不粘贴它的地方? –
@SiddharthRout这是一个很好的;)错过了这个 –