在 vba 我得到一个未设置的对象变量(错误 91)
in vba I am getting a Object variable not set (Error 91)
这是我的基本错误或缺乏理解。我在这里搜索了很多问题,但似乎没有任何适用的问题。
这是代码
Option Explicit
Public Function ReturnedBackGroundColor(rnge As Range) As Integer
ReturnedBackGroundColor = rnge.Offset(0, 0).Interior.ColorIndex
End Function
Public Function SetBackGroundColorGreen()
ActiveCell.Offset(0, 0).Interior.ColorIndex = vbGreen
End Function
Public Function CountBackGroundColorGreen(rnge As Range) As Integer
Dim vCell As Range
CountBackGroundColorGreen = 0
For Each vCell In rnge.Cells
With vCell
If ReturnedBackGroundColor(vCell) = 14 Then
CountBackGroundColorGreen = CountBackGroundColorGreen + 1
End If
End With
Next
End Function
Public Function GetBackgroundColor() As Integer
Dim rnge As Range
GetBackgroundColor = 3
rnge = InputBox("Enter Cell to get Background color", "Get Cell Background Color")
GetBackgroundColor = ReturnedBackGroundColor(rnge)
End Function
我正在添加最后一个函数,在此之前其他所有功能都在运行,但在该函数的第一条语句中出现错误。
对于错误,可能的修复方法之一是添加对正确库的引用。我不知道要引用的正确库是什么,也找不到包含 InputBox 的库。它是一个 activeX 控件,但我没有在工具-> 参考下拉列表中看到它。我确实检查了 Microsoft Forms 2.0。
我尝试了各种设置语句,但我认为我添加的唯一对象是输入框。
有什么建议吗?
谢谢。
使用application.inputbox,将类型添加为范围并设置返回的范围对象。
Option Explicit
Sub main()
Debug.Print GetBackgroundColor()
End Sub
Public Function GetBackgroundColor() As Integer
Dim rnge As Range
Set rnge = Application.InputBox(prompt:="Enter Cell to get Background color", _
Title:="Get Cell Background Color", _
Type:=8)
GetBackgroundColor = ReturnedBackGroundColor(rnge)
End Function
Public Function ReturnedBackGroundColor(rnge As Range) As Integer
ReturnedBackGroundColor = rnge.Offset(0, 0).Interior.ColorIndex
End Function
这是我的基本错误或缺乏理解。我在这里搜索了很多问题,但似乎没有任何适用的问题。
这是代码
Option Explicit
Public Function ReturnedBackGroundColor(rnge As Range) As Integer
ReturnedBackGroundColor = rnge.Offset(0, 0).Interior.ColorIndex
End Function
Public Function SetBackGroundColorGreen()
ActiveCell.Offset(0, 0).Interior.ColorIndex = vbGreen
End Function
Public Function CountBackGroundColorGreen(rnge As Range) As Integer
Dim vCell As Range
CountBackGroundColorGreen = 0
For Each vCell In rnge.Cells
With vCell
If ReturnedBackGroundColor(vCell) = 14 Then
CountBackGroundColorGreen = CountBackGroundColorGreen + 1
End If
End With
Next
End Function
Public Function GetBackgroundColor() As Integer
Dim rnge As Range
GetBackgroundColor = 3
rnge = InputBox("Enter Cell to get Background color", "Get Cell Background Color")
GetBackgroundColor = ReturnedBackGroundColor(rnge)
End Function
我正在添加最后一个函数,在此之前其他所有功能都在运行,但在该函数的第一条语句中出现错误。
对于错误,可能的修复方法之一是添加对正确库的引用。我不知道要引用的正确库是什么,也找不到包含 InputBox 的库。它是一个 activeX 控件,但我没有在工具-> 参考下拉列表中看到它。我确实检查了 Microsoft Forms 2.0。
我尝试了各种设置语句,但我认为我添加的唯一对象是输入框。
有什么建议吗?
谢谢。
使用application.inputbox,将类型添加为范围并设置返回的范围对象。
Option Explicit
Sub main()
Debug.Print GetBackgroundColor()
End Sub
Public Function GetBackgroundColor() As Integer
Dim rnge As Range
Set rnge = Application.InputBox(prompt:="Enter Cell to get Background color", _
Title:="Get Cell Background Color", _
Type:=8)
GetBackgroundColor = ReturnedBackGroundColor(rnge)
End Function
Public Function ReturnedBackGroundColor(rnge As Range) As Integer
ReturnedBackGroundColor = rnge.Offset(0, 0).Interior.ColorIndex
End Function