我正在尝试使用以下代码删除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}}的形式返回,但它会以“测试”的形式返回。知道为什么会这样吗?
答案 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