簡體   English   中英

對象范圍的Excel VBA方法'ClearContents'失敗

[英]Excel VBA Method 'ClearContents' of Object Range Failed

我看過類似的問題“對象范圍失敗的方法”,但似乎沒有人幫助我解決我的問題。

我收到的錯誤是:“對象范圍失敗的方法'ClearContents'

基本上我想要實現的是,如果BG21的單元格值= 1並且相鄰單元格(BH21)中的字符串長度為0則相鄰單元格(BH21)的時間戳。 理想情況下,我想重復一下Range(BG21:BG35)。 我知道我可以為每個方法使用a但我想先清除此錯誤。

我不想使用單元格公式,因為在單元格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 = ""

但我收到了相同的錯誤代碼

任何建議?

我無法得到錯誤,但是你的代碼中有兩件事你做錯了。

  1. Target.Address = ws.Range("$BG$21") Range默認屬性是Value ,因此您在此處將Address與Value進行比較。
  2. ws.Range("$BH$21").ClearContents將導致無限循環,因為此代碼更改工作表,因此發生Change事件並再次啟動宏。 使用EnableEvents可以避免這種情況。

     Application.EnableEvents = False ws.Range("$BH$21").ClearContents Application.EnableEvents = True 

由於您在更改BH21的值時編輯文件,因此您可以循環通過無限循環。 你將需要另一個if或其他東西來避免無限循環。 我的編輯單元格空白,工作得很好。

你也應該改變你的if語句

Target.Address = ws.Range("$BG$21")

Target.Address = "$BG$21"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM