“我的Excel”;运行时错误91:对象变量或未设置块变量;
我明白了 运行时错误91:未设置对象变量或带块变量 当我从云存储位置打开我的程序时,它打开时会出现警告问题“启用内容”。当我单击“启用”时,会出现错误91。如果我从我的计算机打开,则不会出现问题。我确实需要能够从云存储位置下载和打开。我的代码如下“我的Excel”;运行时错误91:对象变量或未设置块变量;,excel,vba,Excel,Vba,我明白了 运行时错误91:未设置对象变量或带块变量 当我从云存储位置打开我的程序时,它打开时会出现警告问题“启用内容”。当我单击“启用”时,会出现错误91。如果我从我的计算机打开,则不会出现问题。我确实需要能够从云存储位置下载和打开。我的代码如下 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.ScreenUpdating = True With ActiveSheet .Ce
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
With ActiveSheet
.Cells.Interior.ColorIndex = xlNone
If Target.Rows.Count = 1 Then
Range("A" & Target.Row, "J" & Target.Row).Interior.ColorIndex = 27
End If
End With
End Sub
将带有ActiveSheet的
更改为带有Me的并为范围指定Me
,如Me.Range
(或使其使用With语句,并以类似点的.Range
开头)
为什么这是一个重要的区别?
ActiveSheet
是在代码运行时具有焦点(位于顶部)的工作表。但这不一定是触发事件的工作表或Target
所在的工作表。因此,您可以尝试更改不同工作表的颜色。避免不惜任何代价使用ActiveSheet
。在大多数情况下,不需要使用它(除非在极少数情况下,如你写了一个addin或类似的东西)
你可能会从阅读中受益
这是一个非常相似的主题。a)哪一行产生错误?b)将使用ActiveSheet
的更改为使用Me
的并为范围指定Me
,如Me.Range
。错误发生在第4行。Cells.Interior.ColorIndex=xlNone“即使在我建议的更改之后,我还是用Activesheet代替了我。在我之后添加了Me.Range,并在.Range???处收到编译错误????更改为Me.Range(“A”和Target.Row,“J”和Target.Row).Interior.ColorIndex=27。它似乎工作正常。谢谢您的帮助。请将其作为答案写下来,以便您可以将其视为已解决。@jceast7如果这回答了您的问题,请追加投票/将其标记为已解决:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
With Me
.Cells.Interior.ColorIndex = xlNone
If Target.Rows.Count = 1 Then
.Range("A" & Target.Row, "J" & Target.Row).Interior.ColorIndex = 27
End If
End With
End Sub