[英]VBA Excel Userform Clear Range after vbYesNo
下面的代碼旨在檢查給定范圍內的單元格是否為空。 如果不是,則詢問用戶是否要保存范圍的內容。 如果他們選擇“否”,則清除該范圍的內容。
Dim answer As Integer
If Not WorksheetFunction.CountA(Worksheets("Temp").Range("A1:D101")) = 0 Then
answer = MsgBox("Save changes for this account?", vbYesNo)
If answer = vbYes Then
'do nothing
Else
Worksheets("Temp").Range("A1:D101").ClearContents
End If
End If
由於某種原因,清除方法將無法清除任何內容。 我嘗試過先激活工作表。 首先選擇范圍。 首先選擇工作表,然后選擇范圍。 使用“ .Clear”代替“ .ClearContents”。 在外部If語句中添加Else語句。 我試過選擇僅填充單元格的范圍。 無論我做了什么,范圍的內容都將保留在那里,直到我手動將其刪除為止。 其他一切似乎都正常。 我一生無法弄清代碼中缺少的內容。
有什么建議么?
編輯:這是整個功能的代碼:
Private Sub NameBox_Change()
Dim answer As Integer
If Not WorksheetFunction.CountA(Worksheets("Temp").Range("A1:D101")) = 0 Then
answer = MsgBox("Save changes for this account?", vbYesNo)
If answer = vbYes Then
'do nothing
Else
Worksheets("Temp").Range("A1:D101").ClearContents
End If
End If
With Me
Worksheets("Temp").Cells(1, 1).Value = Format(Date, "mm-dd-yyyy")
Worksheets("Temp").Cells(1, 2).Value = Worksheets("Users").Cells(.NameBox.ListIndex + 1, 1).Value
Worksheets("Temp").Cells(1, 3).Value = Worksheets("Users").Cells(.NameBox.ListIndex + 1, 6).Value
Worksheets("Temp").Cells(1, 4).Value = Worksheets("Users").Cells(.NameBox.ListIndex + 1, 7).Value
ReadLabel.Caption = Worksheets("Temp").Cells(102, 3).Value
SpentLabel.Caption = Worksheets("Temp").Cells(102, 4).Value
ToSpendLabel.Caption = Worksheets("Temp").Cells(102, 3).Value - Worksheets("Temp").Cells(102, 4).Value
End With
End Sub
我是一個白痴。 當用戶從下拉列表中選擇新名稱時,將觸發此功能。 原始名稱已被清除,然后被新名稱替換。 我只是沒有意識到名字已經改變。 感謝您幫助我以嶄新的眼光看待這個問題。 萬一有人發現我的代碼有用,我將不提問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.