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

VBA运行时错误'91':对象变量或With块变量未设置求助

解决VBA运行时错误'91':对象变量或With块变量未设置

错误原因分析

你遇到的Run-time error '91'核心问题出在变量类型不匹配+对象变量未正确初始化:

  1. 变量定义错误:Dim Total_data, Row1, Row2, Row3 As Range 中,只有Row3被声明为Range对象,Row1、Row2实际是Variant类型,但你在代码里把它们赋值为单元格地址字符串(比如Row1 = "G" & NEWROW3),这不仅类型不匹配,还因为如果是对象类型,必须用Set关键字赋值,直接赋值字符串会导致对象未初始化。
  2. 另外,Dim NEWROW2, NEWROW3, NEWROW4, NEWROW5, NEWROW6 As Integer 存在语法问题:VBA中这种声明方式只有最后一个变量是Integer,前几个都是Variant,建议明确每个变量的类型。

修正后的代码

第一步:修正变量声明

把Row1、Row2、Row3声明为字符串类型(因为你只是用它们存储单元格地址),同时明确行号变量的类型:

Dim NEWROW2 As Integer, NEWROW3 As Integer, NEWROW4 As Integer, NEWROW5 As Integer, NEWROW6 As Integer
Dim Total_data As Range
Dim Row1 As String, Row2 As String, Row3 As String

第二步:保留原有逻辑(字符串赋值无需修改)

原代码中对Row1、Row2、Row3的赋值逻辑是正确的,因为它们现在是字符串类型:

NEWROW2 = SHT1.Range("L" & Rows.Count).End(xlUp).Row
NEWROW3 = SHT1.Range("G" & Rows.Count).End(xlUp).Row + 1
Row1 = "G" & NEWROW3
Row2 = "G" & NEWROW2
Row3 = Row1 & ":" & Row2

SHT1.Range("A1").Value = Row2
SHT1.Range(Row3).Value = TherapyNameRe

额外注意事项

  • 确保SHT1是已正确初始化的工作表对象(比如Set SHT1 = ThisWorkbook.Worksheets("Sheet1")),如果SHT1未设置,也会触发同样的91错误。
  • 确保TherapyNameRe变量已正确定义并赋值,避免后续出现其他错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:03:19