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

VBA代码异常:复制非Data工作表E16单元格至Data表C列返回空值

问题修复:复制指定单元格内容到Data工作表C列

你的VBA代码返回空值,核心是两处错误加一个潜在问题,修正方案如下:

错误点说明

  • 单元格引用错误:原代码里的Cells(4, 16)对应工作表的P4单元格(第4行、第16列),但你需要的是E16,应该用Cells(16, 5)(第16行、第5列,E是第5列),或者更直观的Range("E16")
  • 目标列错误:原代码把内容写入Data工作表的B列,而需求是写入C列,需要把Range("B1")改成Range("C1")
  • 变量未初始化:变量x最好初始化为0,避免之前的残留值导致写入位置偏移错误

修正后的代码

Sub CopyE16ToDataC()
    Dim ws As Worksheet
    Dim x As Integer
    x = 0 ' 初始化变量,确保从C1开始写入(若要从C2开始,设为1)
    
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Data" Then
            x = x + 1
            ' 写入Data工作表的C列,依次往下填充
            Sheets("Data").Range("C1").Offset(x - 1) = ws.Range("E16").Value
            ' 也可改用Cells写法:Sheets("Data").Cells(x, 3).Value = ws.Cells(16, 5).Value
        End If
    Next ws
End Sub

代码逻辑说明

  1. 遍历工作簿中所有工作表
  2. 跳过名为「Data」的工作表
  3. 每找到一个符合条件的工作表,就把它的E16单元格内容,写入Data工作表C列的对应行(x初始为0时从C1开始,初始为1则从C2开始,按需调整)

内容的提问来源于stack exchange,提问作者Fernando Rodríguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:05:25