Vba 运行时错误1004:工作表类的选择方法失败,错误为(varCellContent.Parent.Name)

Vba 运行时错误1004:工作表类的选择方法失败,错误为(varCellContent.Parent.Name),vba,excel,Vba,Excel,代码进行编辑,然后将数据从临时工作表复制到当前工作簿。我使用varCellContent要求用户选择源工作表。当我使用F8逐步构建代码时,测试代码没有任何问题(代码仍然像这样完美地工作) 但是当我正常运行宏时,我会 运行时错误1004:选择工作表类的方法失败 在以下行: Workbooks(varCellContent.Parent.Name).Worksheets("Sheet1").Select 下面的内容可能与问题的原因无关,但在寻找答案时,我已经读了一些关于它的内容。 听起来使用.Se

代码进行编辑,然后将数据从临时工作表复制到当前工作簿。我使用varCellContent要求用户选择源工作表。当我使用F8逐步构建代码时,测试代码没有任何问题(代码仍然像这样完美地工作)

但是当我正常运行宏时,我会

运行时错误1004:选择工作表类的方法失败

在以下行:

Workbooks(varCellContent.Parent.Name).Worksheets("Sheet1").Select
下面的内容可能与问题的原因无关,但在寻找答案时,我已经读了一些关于它的内容。 听起来使用.Select不是一个好主意,但有两个原因我认为它在这种情况下很有用

  • 我不必为下面删除和移动列的每一行代码命名工作表
  • 在构建和调试代码时,我希望工作表是可见的,这样我就可以在逐行查看代码时看到发生了什么
  • 因此,考虑到这两个原因,是否还有更好的方法避免使用。选择

    Sub ImportNewData()
    '
    '
    ' Import data, save as new workbook
    
    Dim LR As Long
        LR = Range("A" & Rows.Count).End(xlUp).Row
    
        ' Clear data
        Range("A3:I" & LR).ClearContents
    
       ' User choose source sheet
        Dim varCellContent As Worksheet
        Set varCellContent = Application.InputBox _
            (prompt:=" " & vbNewLine & "Click any cell in the Aged AP Summary that has been exported from Systematic to Excel, then click OK", Type:=8).Parent
    
        Workbooks(varCellContent.Parent.Name).Worksheets("Sheet1").Select
    
       'Delete unrequired columns
        Columns("E:I").Select
        Selection.Delete Shift:=xlToLeft
    

    成功了,谢谢!:-)我仍然不明白为什么。使用F8单步执行时选择worked(工作),但在调试应用程序时选择not Normal(不正常)会修改计算机的状态,因此它的运行方式与调试时的运行方式不同。这很有效,谢谢!:-)我仍然不明白为什么。使用F8单步执行时,选择“工作”,但在调试应用程序修改计算机状态时,选择“不正常”,因此它的运行方式与调试时不同。
    Worksheets("Sheet1").Activate
    Columns("E:I").Delete Shift:=xlToLeft