以下代码旨在检查给定范围内的单元格是否为空。如果不是,则询问用户是否要保存该范围的内容。如果他们选择"否"范围的内容被清除。
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
出于某种原因,明确的方法只是没有清除任何东西。我试过首先激活表格。首先选择范围。首先选择工作表然后选择范围。使用"。清除"而不是" .ClearContents"。将Else语句添加到外部If语句。我尝试过选择一系列只有填充的细胞。无论我做了什么,范围的内容都将保留在那里直到我手动删除它。其他一切似乎都很好。我不能为我的生活弄清楚我的代码中缺少什么。
有什么建议吗?
编辑:以下是整个功能的代码:
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
答案 0 :(得分:0)