VBA 用于从 Excel 单元格中给出的文件和工作表名称复制粘贴

VBA 用于从 Excel 单元格中给出的文件和工作表名称复制粘贴

我正在使用以下 VBA 代码从已关闭的 Excel 工作表中复制数据。工作表的名称根据日期而变化。因此,我从 Excel 单元格中分配路径和文件名B1。现在我只能停留在一个地方。我想分配另一个单元格中给出的工作表名称B2

Sub GetDataClosedBook()

Dim scr As Workbook
Dim FromPath1 As String


'location of the file and data to copy'

Application.ScreenUpdating = False

FromPath1 = Sheets("Status").Range("B1")

Set scr = Workbooks.Open(FromPath1)

ThisWorkbook.Activate

Worksheets("Today_BC").Range("B1:P40000").Formula = scr.Worksheets("12SEP2018").Range("A1:O40000").Formula
Workbooks(2).Close

Application.ScreenUpdating = True
ActiveWorkbook.Save 

End Sub

现在("12Sep2018")一直在变化,我现在正在手动操作,但我想从工作表中的单元格分配。我该怎么做?

答案1

我想分配另一个单元格 B2 中给出的工作表名称

如果是这样,您必须将工作表名称的字符串文字替换"12SEP2018"为存储所需工作表名称的单元格的值。即

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets("12SEP2018").Range("A1:O40000").Formula

必须替换为

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(Sheets("Status").Range("B2").Value).Range("A1:O40000").Formula

或者将目标工作表名称存储在变量中:

StoreTo = Sheets("Status").Range("B2").Value
Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(StoreTo).Range("A1:O40000").Formula

相关内容