excelvba方法&x27;ClearContents';对象范围的设置失败
我看过关于“对象范围方法失败”的类似问题,但似乎没有一个能帮助我解决问题 我收到的错误是:“对象范围的“ClearContents”方法失败” 基本上,我试图实现的是,如果单元格值BG21=1,并且相邻单元格(BH21)中字符串的长度为0,则为相邻单元格(BH21)添加时间戳。理想情况下,我想对范围(BG21:BG35)重复此操作。我知道我可以为每个方法使用一个,但我想先清除这个错误 我不想使用cell公式,因为在cell BG21变为1时,我需要一个时间戳。如果我使用单元格公式,那么无论何时打开工作簿,时间戳都会更改 我的密码是:excelvba方法&x27;ClearContents';对象范围的设置失败,vba,excel,timestamp,Vba,Excel,Timestamp,我看过关于“对象范围方法失败”的类似问题,但似乎没有一个能帮助我解决问题 我收到的错误是:“对象范围的“ClearContents”方法失败” 基本上,我试图实现的是,如果单元格值BG21=1,并且相邻单元格(BH21)中字符串的长度为0,则为相邻单元格(BH21)添加时间戳。理想情况下,我想对范围(BG21:BG35)重复此操作。我知道我可以为每个方法使用一个,但我想先清除这个错误 我不想使用cell公式,因为在cell 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").Value = ""
但我收到了相同的错误代码
有什么建议吗
.由于在更改BH21的值时编辑了文件,因此它在无限循环中循环。您需要另一个if或其他东西来避免无限循环。我的在编辑空白单元格时效果很好 您还应该将if语句从
Target.Address = ws.Range("$BG$21")
到
我无法得到错误,但是在你的代码中有两件事你弄错了
Target.Address=ws.Range(“$BG$21”)
范围的默认属性是Value
,因此您可以在此处将地址与值进行比较ws.Range(“$BH$21”)。ClearContents
将导致无限循环,因为此代码更改工作表,所以发生Change
事件并再次启动宏。使用EnableEvents
可避免这种情况
Application.EnableEvents = False
ws.Range("$BH$21").ClearContents
Application.EnableEvents = True
如果Target.Address=“$BH$21”那么这是一个工作表更改事件,您不需要为工作表设置变量,因为您已经在工作表上了。
Target.Address = "$BG$21"
Application.EnableEvents = False
ws.Range("$BH$21").ClearContents
Application.EnableEvents = True