如何修改VBA代码实现按指定工作表名跨工作簿提取数据
修改方案
核心是把代码中固定的工作表名称"Export"替换为Workbook A指定单元格中填写的工作表名称,具体操作如下:
- 先定义变量读取目标工作表名称(假设指定单元格是Workbook A里
Sheet1的A1单元格,可根据实际位置调整):
Dim targetSheetName As String targetSheetName = Workbooks("Workbook A.xlsm").Worksheets("Sheet1").Range("A1").Value
- 修改原代码行,用变量替代固定的工作表名称:
Workbooks("Workbook B.xlsm").Worksheets(targetSheetName).Range("A2:D9").Copy
额外优化建议
- 确保Workbook A和Workbook B都处于打开状态,否则代码会触发错误
- 可以添加表名存在性判断,避免因输入错误导致宏崩溃:
On Error Resume Next Dim targetWs As Worksheet Set targetWs = Workbooks("Workbook B.xlsm").Worksheets(targetSheetName) On Error GoTo 0 If Not targetWs Is Nothing Then targetWs.Range("A2:D9").Copy Else MsgBox "Workbook B中不存在名为「" & targetSheetName & "」的工作表" End If
内容的提问来源于stack exchange,提问作者Carsten Høvsgaard
相关产品推荐
相关产品推荐

