VBA:将Excel工作表复制到另一个工作簿

时间:2018-11-30 11:26:08

标签: excel vba

我正在尝试在VBA中自动化流程,但有一点我已经坚持很长时间了。

我有2个Excel工作簿-称它们为:

  • 2018_W78_Workbook
  • 20180913_Z28 2018

这些工作簿确实具有变量名。
我的意思是,第一个工作簿每年都会更改其名称。
例如,2019_W78_Workbook变为2020_W78_Workbook,依此类推。


第二个工作簿每月更改其名称。

  • 前8个字母每个月都会更改
  • 接下来的4个字母始终相同,并且
  • 每年的最后4次更改。

每个工作簿的工作表都有恒定的标题。

之所以这样说,是因为标题始终不同,因此无法通过录制来制作此宏。

现在的任务是将20180913_Z28 2018Sheet A)的工作表复制到2018_W78_Workbook中吗?

这两个工作簿将是执行宏时唯一打开的工作簿。

1 个答案:

答案 0 :(得分:1)

我以前在类似的设置中使用过

一起去:

Sub sheetCopyTransfer()

   Dim wbS As Workbook, wbT As Workbook
   Dim wsS As Worksheet, wsT As Worksheet
   Dim chgTitle As String
'<<This will help you work with the underscores and numericals in the name

   chgTitle = ThisWorkbook.Worksheets("IR General Info").Range("B2").Text

   Set wsS = ThisWorkbook.Worksheets("Bulk Upload")

   wsS.Copy
   ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & title & ".xlsx" 'This will save it where you current workbook is with the new saved title (of the worksheet)
   Set wbT = excel.workbooks(title & ".xlsx") 'assign reference 

   Set wsT = wbT.Worksheets("Bulk Upload")
   wsT.Name = "Exported_BulkUpload"


End Sub

大约2年前,我在使用@whytheq用户时得到了全部功劳