【问题标题】:How to handle Input Box Prompt Cancel Operation如何处理输入框提示取消操作
【发布时间】:2020-11-30 06:12:17
【问题描述】:

嘿,我正在使用输入框从一张纸复制范围并将其粘贴到另一张纸上。当我在提示范围选择时按下取消按钮时出现错误。错误是错误代码 424“需要对象”。所以我想用消息框“你没有选择复制范围”来处理这个错误。我以不同的方式尝试过,但无法得到最终的解决方案。下面是我的代码和错误信息。

Sub ImportDatafromotherworksheet()
    Dim wkbCrntWorkBook As Workbook
    Dim wkbSourceBook As Workbook
    Dim rngSourceRange As Range
    Dim rngDestination As Range
    Set wkbCrntWorkBook = ActiveWorkbook
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Clear
        .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa"
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.count > 0 Then
            Workbooks.Open .SelectedItems(1)
            Set wkbSourceBook = ActiveWorkbook
            Set rngSourceRange = Application.InputBox(Prompt:="Select All Data You Want to Copy.", Title:="Select All Data", Default:="A1", Type:=8)
            
            On Error GoTo 0
            If rngSourceRange Is Nothing Then
            Exit Sub
            End If
            
            wkbCrntWorkBook.Activate
            Set rngDestination = Application.InputBox(Prompt:="Select destination cell", Title:="Select Destination", Default:="A2", Type:=8)
            rngSourceRange.Copy rngDestination
            rngDestination.CurrentRegion.EntireColumn.AutoFit
            wkbSourceBook.Close False
           
        End If
    End With
End Sub

所以当我做以下工作时出现了上述错误。

当我在没有选择任何范围的情况下单击取消按钮时,会出现上述错误消息。如何解决这个问题,请指导我。谢谢

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果您按下取消,InputBox 将返回一个布尔值 False。 但是只有对象可以使用Set,并且布尔值不是对象。因此,您需要On Error Resume Next 来关闭错误报告。

    On Error Resume Next 'turns error reporting off until GoTo 0
    Set rngSourceRange = Application.InputBox(Prompt:="Select All Data You Want to Copy.", Title:="Select All Data", Default:="A1", Type:=8)
    On Error GoTo 0 'turns error reporting on again.
    

    如果您按下取消,现在 rngSourceRange 将变为 Nothing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 2019-10-05
      • 2022-12-12
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      相关资源
      最近更新 更多