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

寻求复制第10行最后26个数据单元格的有效VBA代码(尝试代码失败)

VBA代码修复:复制第10行最后26个含数据单元格

我来帮你修复这段VBA代码,先梳理下原代码里的几个问题:

  • 变量lr未定义且无意义(我们只需要复制第10行的单元格,行数固定为1)
  • 起始列计算逻辑错误:要取最后26个单元格,起始列应该是lc - 25(从该列到最后一列lc刚好是26列)
  • 嵌套With语句的语法有误,复制操作不需要额外嵌套
  • 缺少边界判断:如果第10行的有效列数不足26,会导致列号小于1的错误,需要做容错处理

以下是修正后的可运行代码:

Sub GetLastCells()
    Dim ws As Worksheet
    Dim lastCol As Long
    Dim startCol As Long
    
    ' 指定目标工作表
    Set ws = ThisWorkbook.Worksheets("PROCV")
    
    ' 获取第10行最后一个有数据的列号
    lastCol = ws.Cells(10, ws.Columns.Count).End(xlToLeft).Column
    
    ' 计算起始列:如果有效列数>=26,取倒数第26列;否则取第1列
    startCol = IIf(lastCol >= 26, lastCol - 25, 1)
    
    ' 复制目标范围:第10行,从startCol到lastCol的单元格
    ws.Range(ws.Cells(10, startCol), ws.Cells(10, lastCol)).Copy
    
    ' 如果你需要粘贴到某个位置,可以添加类似下面的代码(按需启用)
    ' ThisWorkbook.Worksheets("目标工作表").Range("A1").PasteSpecial xlPasteValues
End Sub

代码关键点说明:

  • 明确声明了工作表变量ws,让代码更清晰易维护
  • 添加了startCol的容错判断,避免当第10行数据不足26列时出现运行错误
  • 使用Range对象直接指定复制范围,比Resize更直观,也避免了行数错误的问题
  • 注释清晰标注了每一步的作用,方便你理解和修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:19:59