【问题标题】:Excel VBA: cannot set rangeExcel VBA:无法设置范围
【发布时间】:2014-03-27 18:26:29
【问题描述】:

我在对简单的边框功能进行故障排除时遇到了一些问题。有趣的是,我认为这昨天奏效了。但是当我今天打开工作簿时(从昨天保存),有些东西不起作用。

我可以编译包含以下代码的项目。但是,在运行时,出现以下错误:“运行时错误'91':对象变量或未设置块变量”

有帮助,不是吗?好吧,当我点击“调试”时,我分配 my_range 的行被突出显示。 locals 窗口显示没有为 my_range 分配任何值。为什么这个范围很难接受这样的任务?

我在 Win7 机器上使用 Excel 2007。这是完整的程序代码:

Public Sub borders_test()

'activate the sheet
Worksheets("Sheet1").Activate

'create a range, and assign to it
Dim my_range As Range
my_range = ActiveSheet.Cells(2, 3)

'set a red border around the range
With my_range.Borders
  .Color = RGB(255, 0, 0)
  .Weight = xlMedium
End With

'now delete the border
'With my_range.Borders
'  .LineStyle = xlNone
'End With

End Sub

从 my_range 赋值下面取出行没有区别。

【问题讨论】:

  • 请改用Set my_range = ActiveSheet.Cells(2, 3)。将 object 分配给变量时,应始终使用 Set 关键字
  • 就是这样,如果您发布为答案,我可以标记为已回答。谢谢。

标签: excel vba


【解决方案1】:

改用这个:

Dim my_range As Range
Set my_range = ActiveSheet.Cells(2, 3)

当您将object 分配给变量时,您应该始终使用Set 关键字。

顺便说一句,这篇文章将来可能会对您有所帮助:how to avoid using Select/Active statements:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多