【发布时间】:2016-05-04 16:02:36
【问题描述】:
我已经查看了有关“对象范围方法失败”的类似问题,但似乎没有一个可以帮助我解决我的问题。
我收到的错误是:“对象范围的方法'ClearContents'失败”
基本上我想要实现的是,如果 BG21 的单元格值 = 1 并且相邻单元格 (BH21) 中字符串的长度为 0,则为相邻单元格 (BH21) 加上时间戳。理想情况下,我想对 Range (BG21:BG35) 重复此操作。我知道我可以为每种方法使用一个,但我想先清除这个错误。
我不想使用单元格公式,因为在单元格 BG21 更改为 1 时我需要一个时间戳。如果我使用单元格公式,那么只要打开工作簿,时间戳就会更改。
我的代码是:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook, ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Submittal Kickoff Meeting")
If (ws.Range("$BG$21").Value = 1 And len(ws.Range("$BH$21").Value) = 0 And Target.Address = ws.Range("$BG$21")) Then
ws.Range("$BH$21").Value = Format(Now(), "m/dd/yyyy hh:mm:ss AM/PM")
Else
ws.Range("$BH$21").ClearContents '<--- Error occurs here
End If
End Sub
在线出现错误:
ws.Range("$BH$21").ClearContents
我也试过了:
ws.Range("$BH$21").Value = ""
但我收到了相同的错误代码
有什么建议吗??
.
【问题讨论】:
-
你不能以
If Target.Address = "$BH$21" Then开始代码吗这是一个worksheet_change事件,你不需要为工作表设置变量,因为你已经在工作表上。