if语句的应用程序定义或对象定义的错误

每当我尝试运行这个代码,我得到了这个错误的if语句,我不知道为什么,请告知rcolor和信息的定义和完美的工作,我只是select不把它们放在这里,因为他们很长,不会以任何方式影响问题
M8是从不同的子带来的

Sub Schedule(M8 As Variant) If eTime = "900" Then retry1: If IsEmpty(Cells(8, M8).Value) And IsEmpty(Cells(12, M8).Value) = True Then Sheets("Schedule").Cells(8, M8).Value = info Sheets("Schedule").Range(Cells(9, M8), Cells(12, M8)).Value = "," Sheets("Schedule").Range(Cells(8, M8), Cells(12, M8)).Interior.Color = rcolor Sheets("Schedule").Range(Cells(8, M8), Cells(12, M8)).BorderAround Weight:=xlMedium M8 = M8 + 1 Else M8 = M8 + 1 GoTo retry1 End If 

我一直在这个问题上停留了相当长的一段时间,并会感谢任何帮助,thnx提前。

正如@findwindow所提到的,您需要将所有对象(范围)赋值为确保代码完全按照您的意愿执行。

你可以用With块整齐地做这个。 否则,如果你不分配确切的对象来处理,代码将只看最后一个活动对象,这可能不是你想要的。

 With Sheets("Schedule") If IsEmpty(.Cells(8, M8).Value) And IsEmpty(.Cells(12, M8).Value) Then .Cells(8, M8).Value = info .Range(.Cells(9, M8), .Cells(12, M8)).Value = "," .Range(.Cells(8, M8), .Cells(12, M8)).Interior.Color = rcolor .Range(.Cells(8, M8), .Cells(12, M8)).BorderAround Weight:=xlMedium M8 = M8 + 1 Else M8 = M8 + 1 GoTo retry1 End If End WIth