Excel宏输入类型未返回正确的值

时间:2013-05-15 15:46:19

标签: excel vba input

我正在尝试使用以下代码删除Excel 2010工作表中具有相同内部颜色的所有单元格:

Dim myRange As Range
Set myRange = Application.InputBox("Select a cell to remove based on background fill color.", Type:=8)
Range("C3").Interior.Color = Range(myRange).Interior.Color

但是当我运行代码时,我收到以下错误:

Method 'Range' of object '_Global' failed.

我已经发现即使我要求将单元格引用作为范围对象(Type:=8),myRange也会被设置为单元格的值。例如,A2中的值为“Test”。 myRange应该以{{1​​}}的形式返回,但它会以“测试”的形式返回。知道为什么会这样吗?

2 个答案:

答案 0 :(得分:2)

只是做:

Range("C3").Interior.Color = myRange.Interior.Color

您已将myRange标注为Range变量,因此您无需将其限定为Range(myRange)。如果您这样做,它会尝试评估myRange.Value,这就是您收到错误的原因。

干杯。

答案 1 :(得分:2)

你的问题在于Range(myRange)。 Range对象可以以两种方式之一使用;字符串(即Range(“A1:B2”))或两个其他Range对象,表示矩形的左上角和右下角(即Range(Cells(1,1),Cells(2,2)))。您正在为它提供一个Range对象。

我怀疑你打算这样做:

Dim myRange As Range
Set myRange = Application.InputBox("Select a cell to remove based on background fill color.", Type:=8)
Range("C3").Interior.Color = myRange.Interior.Color