【问题标题】:VBA Excel Userform Clear Range after vbYesNovbYesNo之后的VBA Excel用户表单清除范围
【发布时间】:2015-05-29 22:49:14
【问题描述】:

下面的代码旨在检查给定范围内的单元格是否为空。如果不是,则询问用户是否要保存范围的内容。如果他们选择“否”,则清除范围的内容。

 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 方法不会清除任何内容。我尝试过首先激活工作表。首先选择范围。首先选择工作表,然后选择范围。使用“.Clear”而不是“.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

【问题讨论】:

  • 这个范围有什么特别之处吗?它是更大数组公式的一部分吗?
  • 如果你调试,你会到达ClearContents这一行吗?
  • 范围的值由另一个工作表的值填充。我曾经设置过 Auto Sum 单元格,但后来删除了它。调试器对我的代码没有任何问题,我也没有收到任何错误。

标签: vba excel userform


【解决方案1】:

我是个白痴。当用户从下拉列表中选择新名称时触发此功能。原来的名称被清除,然后被新名称取代。我只是没有意识到名字已经改变了。感谢您帮助我用新的眼光看待这个问题。如果有人发现我的代码有用,我会留下问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多