VBA 缺少 Worksheet.Range 作为值并不断获取未设置对象变量(错误 91)

Posted

技术标签:

【中文标题】VBA 缺少 Worksheet.Range 作为值并不断获取未设置对象变量(错误 91)【英文标题】:VBA missing Worksheet.Range as a value and continuously get Object variable not set (Error 91) 【发布时间】:2018-09-20 19:39:05 【问题描述】:
Public Sub InputData(var)
Dim WB As Workbook
Dim FilePath As String
FilePath = "C:\Users\Jordan.Jennings\Desktop\Programs\Test.xlsx"
WB = Workbooks.Open(FilePath)
ibox = 1
E = 8.5
N = 10
W = 7.5
S = 9.75
Do Until ibox = var
    Set I = ActivePage.DrawRectangle(E, N, W, S)
    I.Text = WB.Worksheets("Sheet1").Range("A1").Value
    N = N - 0.25
    S = S - 0.25
    ibox = ibox + 1
Loop
End Sub

好的,我已经尝试了很多东西 - 我想要做的是在 visio 中从 excel 文档中绘制一堆带有文本的框,当我做工作表时(“Sheet1”)。Range .Range 没有作为一个选项出现,我抛出错误 91 请帮助我在这里不知所措

【问题讨论】:

愚蠢的问题,但工作簿实际上有一个名为Sheet1的工作表?如果您尝试WB.Worksheets(1).Range("A1").Value 会怎样?该工作簿路径是否正确?我相信您还需要执行Set WB = ...,因为您将WB 声明为工作簿。 【参考方案1】:

WBWorkbook 对象引用。

WB = Workbooks.Open(FilePath)

您不能像这样分配对象引用。

Set WB = Workbooks.Open(FilePath)

这应该可以解决它。

【讨论】:

他说了什么。 (没看到他没发set 是的,就是这样!哈这样令人沮丧的小失误。非常感谢!

以上是关于VBA 缺少 Worksheet.Range 作为值并不断获取未设置对象变量(错误 91)的主要内容,如果未能解决你的问题,请参考以下文章

C#导出Excel时间格式问题

导出excel报错:object 未包含get_range的定义

C#导出Excel时怎么设置单元格的格式为数值类型

查询表达式中的语法错误(缺少运算符) - VBA

VBA SQL 缺少 WHERE 子句的最后一个条件

VBA从数组制作图表 - 缺少值的问题