【问题标题】:Select method of range class failed for selection范围类的选择方法选择失败
【发布时间】:2019-12-19 05:36:42
【问题描述】:

您好,我已经录制了一个宏,我想将它实现到我当前的 vba 宏中,但是在使用另一张纸上的按钮测试代码时,似乎有一个

错误 1004 表明范围类的 Select 方法失败

突出显示代码的选择部分。" Sheets("Raw").Cells.Select " 我是否遗漏了代码中的任何内容或有任何建议。提前致谢!

Private Sub CommandButton1_Click()
' unmerge Macro
' Keyboard Shortcut: Ctrl+q

Sheets("Raw").Cells.Select
Selection.unmerge
    With Selection
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
        End With

    Sheets("Raw").Rows("1:5").Select
    Selection.Delete Shift:=xlUp
    Sheets("Raw").Cells.Select
    Selection.ColumnWidth = 8.29
    Sheets("Raw").Range("C:C,E:F,H:H,J:M,O:R,T:T,V:W,Y:AA").Select
    Sheets("Raw").Range("Y1").Activate

    Sheets("Raw").Range( _
        "C:C,E:F,H:H,J:M,O:R,T:T,V:W,Y:AA,AC:AD,AF:AH,AJ:AJ,AL:AM,AO:AO,AQ:AR,AT:AU"). _
        Select
    Sheets("Raw").Range("AT1").Activate

    Sheets("Raw").Range( _
        "C:C,E:F,H:H,J:M,O:R,T:T,V:W,Y:AA,AC:AD,AF:AH,AJ:AJ,AL:AM,AO:AO,AQ:AR,AT:AU,AW:AY" _
        ).Select
   Sheets("Raw").Range("AW1").Activate
    Selection.Delete Shift:=xlToLeft
    Sheets("Raw").Range("AG23").Select

    Sheets("Raw").Cells.Select
    Selection.ColumnWidth = 9.71
    Selection.ColumnWidth = 13.71
    Sheets("Raw").Range("D14").Select
End Sub

【问题讨论】:

标签: excel vba


【解决方案1】:

如果您在单元格上使用 .Select,则这些单元格的工作表必须处于活动状态。在第一行添加:

Sheets("Raw").Activate

【讨论】:

  • 使用.Select.Activate 是不受欢迎的,而且还会使任何代码混乱、不可读且非常缓慢...建议 OP 阅读我的链接,因为这将在现在和将来有很多好处
  • 它有效,谢谢!但我会尝试根据链接进行更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多