如何修改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
相关产品推荐
相关产品推荐

