gpt4 book ai didi

vba - 对象范围的 Excel VBA 方法 'ClearContents' 失败

转载 作者:行者123 更新时间:2023-12-04 22:01:03 27 4
gpt4 key购买 nike

我已经查看了有关“对象范围方法失败”的类似问题,但似乎没有一个可以帮助我解决我的问题。

我收到的错误是:“对象范围的方法‘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 = ""

但我收到了相同的错误代码

有什么建议吗??

.

最佳答案

我无法得到错误,但是您的代码中有两件事是错误的。

  • Target.Address = ws.Range("$BG$21") Range 的默认属性是 Value ,所以你在这里比较地址和值。
  • ws.Range("$BH$21").ClearContents将导致无限循环,因为此代码更改工作表,所以 Change事件发生,宏再次启动。使用EnableEvents避免这种情况。
    Application.EnableEvents = False
    ws.Range("$BH$21").ClearContents
    Application.EnableEvents = True
  • 关于vba - 对象范围的 Excel VBA 方法 'ClearContents' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041833/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com