如何使这项工作?
Range(Cells(1,1),Cells(height,width)).Interior.Color=colorArray
colorArray是包含颜色值的长度(宽度*高度)的长整数的一维数组。
上面的代码返回Type mismatch error。
For i = 1 to height
For j = 1 to width
t=(i-1)*width+j
Cells(i,j).Interior.Color=colorArray(t)
Next
Next
此代码有效,但速度太慢。我不想使用循环。
Range(Cells(1,1),Cells(height,width)).Value=colorArray
此代码使用colorArray中的颜色值填充范围,没有错误。我想要一个类似的代码来改变这个范围的单元格的背景颜色。
请帮忙。
ReDim colorArray(1 To width*height) As Long
Siddharth Rout的示例代码:
Sub Sample()
Dim colorArray(21) 'or Dim colorArray(21) As Long/Integer
Dim Height As Long, Width As Long
For i = 0 To 21
colorArray(i) = i
Next
Height = 10
Width = 2
Range(Cells(1, 1), Cells(Height, Width)).Interior.Color = colorArray
End Sub
@Siddharth Rout,我测试了这段代码,但它也返回了相同的错误“运行时错误:'13'类型不匹配”
答案 0 :(得分:0)
上面的代码返回Type mismatch error。
John,你是如何在代码中定义colorArray的?这对我有用。
Sub Sample()
Dim colorArray(21) 'or Dim colorArray(21) As Long/Integer
Dim Height As Long, Width As Long
For i = 0 To 21
colorArray(i) = i
Next
Height = 10
Width = 2
Range(Cells(1, 1), Cells(Height, Width)).Interior.Color = colorArray
End Sub
答案 1 :(得分:0)
我相信问题在于你的电话。你应该使用:
Range(Cells(1, 1), Cells(Height, Width)).Interior.Color***Index*** = colorArray
这是我在Excel VBA中使用单元格背景颜色的经验。
-Scott