如何在VBA中检查单元格是否有效?

Ron*_*o.K 3 excel vba excel-vba

如果

  • r = 1,和
  • c = 1

下面的目标代码无效(它尝试返回列左侧的两列单元格A)

Cells(r, c).Offset(0, -2)
Run Code Online (Sandbox Code Playgroud)

如何在检查目标单元格是否有效?

bre*_*tdj 6

  1. 使用Range对象来测试它是否有效(首选多功能性)
  2. 测试列是否有效(假设您的硬编码OFFSET(0,2)

(1)代码

Sub Test1()
Dim r As Long
Dim c As Long
r = 1
c = 1
Dim rng1 As Range
On Error Resume Next
Set rng1 = Cells(r, c).Offset(0, -2)
On Error GoTo 0
If Not rng1 Is Nothing Then
'proceed with your code - range exists
Else
MsgBox "Range Error", vbCritical
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

(2)代码

Sub Test2()
Dim rng1 As Range
Dim r As Long
Dim c As Long
c = 3
r = 1
If c - 2 <= 0 Then
MsgBox "Error", vbCritical
Else
Set rng1 = Cells(r, c).Offset(0, -2)
End If
End Sub
Run Code Online (Sandbox Code Playgroud)