You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求VBA脚本:将表格数据写入同工作簿指定工作表的指定单元格

VBA脚本:批量将表格数据写入指定工作表单元格

这个脚本可以批量读取当前工作表的配置数据,将指定内容写入同一工作簿内的目标工作表对应单元格,完美适配你描述的表格结构(第1列序号、第2列待写数据、第3列目标工作表名、第4列目标单元格地址)。

完整代码

Sub WriteDataToTargetCells()
    Dim wsSource As Worksheet
    Dim wsTarget As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim targetSheetName As String
    Dim targetCellAddr As String
    Dim dataToWrite As Variant
    
    ' 指定数据源工作表(默认用当前活动表,可替换为具体表名,比如Sheets("数据清单"))
    Set wsSource = ActiveSheet
    
    ' 获取数据源的最后一行(避免遍历空行)
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历每一行数据(如果第1行是表头就从2开始,直接是数据就改成1)
    For i = 2 To lastRow
        ' 提取当前行的配置信息
        targetSheetName = wsSource.Cells(i, 3).Value
        targetCellAddr = wsSource.Cells(i, 4).Value
        dataToWrite = wsSource.Cells(i, 2).Value
        
        ' 检查目标工作表是否存在
        On Error Resume Next
        Set wsTarget = ThisWorkbook.Sheets(targetSheetName)
        On Error GoTo 0
        
        If Not wsTarget Is Nothing Then
            ' 写入数据到目标单元格
            wsTarget.Range(targetCellAddr).Value = dataToWrite
            Set wsTarget = Nothing ' 释放对象引用
        Else
            ' 工作表不存在时弹出提示(不需要的话可以删掉这行)
            MsgBox "工作表 '" & targetSheetName & "' 不存在,跳过第" & i & "行", vbExclamation
        End If
    Next i
    
    MsgBox "数据写入完成!", vbInformation
End Sub

使用步骤

  • 打开Excel工作簿,按下Alt + F11打开VBA编辑器
  • 右键点击项目窗口里的工作簿名称 → 插入 → 模块
  • 把上面的代码粘贴到模块中
  • 根据你的表格调整遍历起始行:如果第1行是表头,保持For i = 2 To lastRow;如果第1行就是数据,改成For i = 1 To lastRow
  • 返回Excel界面,按Alt + F8,选择WriteDataToTargetCells并点击执行

额外说明

  • 脚本会自动跳过不存在的目标工作表,并给出提示;不需要提示的话,直接删除对应的MsgBox行即可
  • 支持写入各种类型的数据(文本、数字、日期等),会保留原数据格式

内容的提问来源于stack exchange,提问作者Nikita Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:25:18