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

基于指定工作表复制数据区域的VBA宏问题求助

VBA宏代码错误修正方案

原代码的问题点

  • 引用工作表时错误地把变量ShtName用引号包裹,导致VBA试图寻找名为"ShtName"的工作表,而非用户输入的目标表名
  • Copy方法的Destination参数写法错误,不需要额外调用.Paste,直接指定目标单元格范围即可

修正后的代码

Public Sub MacroPremiumCopy()
    Dim ShtName As String
    Dim targetSht As Worksheet
    
    ShtName = InputBox("请输入要复制数据的工作表名称")
    
    If ShtName <> "" Then
        ' 检查输入的工作表是否存在
        On Error Resume Next
        Set targetSht = ThisWorkbook.Worksheets(ShtName)
        On Error GoTo 0
        
        If Not targetSht Is Nothing Then
            ' 复制指定区域到汇总表的M14开始的位置
            targetSht.Range("X7:X98").Copy Destination:=ActiveSheet.Range("M14")
        Else
            MsgBox "不存在名为""" & ShtName & """的工作表,请检查输入"
        End If
    End If
End Sub

代码说明

  • 移除工作表名的引号,直接使用变量ShtName引用目标工作表,匹配用户输入内容
  • 新增工作表存在性检查,避免输入错误导致程序崩溃,同时给出明确的错误提示
  • 修正Copy方法的参数写法,直接指定目标单元格范围ActiveSheet.Range("M14"),这里的ActiveSheet就是放置按钮的汇总表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:02:51