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

如何修改VBA代码实现E列为空时仅复制D列值至另一工作表

修改VBA代码实现仅复制指定列值

下面是修改后的代码,可实现当工作表“CHECK DB”的E列单元格为空时,仅复制对应行的D列值到工作表“Descript”中:

Sub CopyToAnotherSheet()

   Dim LastRow As Long
   Dim j As Long ' 显式声明变量,避免隐式变体类型

   ' 获取"CHECK DB"工作表D列最后一行的行号
   With Worksheets("CHECK DB")
      LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
   End With

   ' 获取"Descript"工作表A列第一个空行的行号
   With Worksheets("Descript")
      j = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
   End With
   
   ' 遍历行:E列为空时复制对应D列值到目标表
   For i = 2 To LastRow
       With Worksheets("CHECK DB")
           If .Cells(i, 5).Value = "" Then
               ' 仅复制当前行的D列单元格到目标表A列对应行
               .Cells(i, "D").Copy Destination:=Worksheets("Descript").Range("A" & j)
               j = j + 1
           End If
       End With
   Next i
   
End Sub

关键修改说明:

  • 把原代码中复制整行的 .Rows(i).Copy... 替换为 .Cells(i, "D").Copy...,明确指定仅复制当前行的D列单元格
  • 修正了原代码中与逻辑不符的错误注释
  • 新增变量j的显式声明,避免隐式变体类型带来的潜在问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:47:36