我对VBA有点新,并且遇到了我无法解决的运行时错误。我有以下代码
Dim vRange As Range
Sheets("Vert E").Cells.FormatConditions.Delete
With Sheets("Vert E")
Set vRange = .Range(.Cells(2, 2))
End With
vRange.Select
最后一行vRange.Select抛出一个错误,指出运行时错误'1004':应用程序定义的错误或对象定义的错误。有什么想法吗?
答案 0 :(得分:1)
有几件事:
1)删除围绕.Cells(2,2)的.Range(_):这是不必要的
2)进一步向上移动
3)Range.Select只能在Range的工作表是活动工作表时使用。因此,要确认它,请在vRange.Select上方添加类似.Activate,然后将End With移至vRange.Select下方。
像:
Dim vRange As Range
With Sheets("Vert E")
.Cells.FormatConditions.Delete
Set vRange = .Cells(2, 2)
.Activate
vRange.Select
End With
希望有所帮助
答案 1 :(得分:1)
更短更整洁的方式
Dim vRange As Range
Dim ws as Worksheet
Set ws = Sheets("Vert E")
ws.Cells.FormatConditions.Delete
Set vRange = ws.Cells(2, 2)
ws.Activate
vRange.Select
更新
要将某些格式应用于单元格而不选择它,请使用
以下示例中的更改了单元格的颜色
vRange.Interior.Color = RGB(200, 100, 50)
在VBE中输入vRange.Interior.
并使用VBE Intellisense,它可以通过列出Interior类的可用属性来帮助你。
将格式应用于单元格的最佳方法是在recording a macro时执行此操作,然后在VBE中编辑代码。