試圖刪除列,對簡單的出口,我得到一個錯誤:麻煩與基本的宏 - 移除和排序列
每次我在第二最近創建的工作簿中運行的基本的宏時間Run-time error '9': Subscript out of range
。
Sub ONCE()
'
' ONCE Macro
' export and prep an ONC list
'
' Keyboard Shortcut: Ctrl+e
'
Range("A:A,B:B,F:F").Select
Range("F1").Activate
Selection.Delete Shift:=xlToLeft
Columns("A:A").Select
Columns("A:A").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 8.29
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("C:C").Select
ActiveWorkbook.Worksheets("QueueDetail_20160802_150124").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("QueueDetail_20160802_150124").Sort.SortFields.Add _
Key:=Range("C1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("QueueDetail_20160802_150124").Sort
.SetRange Range("A2:C35")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D4").Select
End Sub
原始工作簿有6列,我所做的錄製宏是刪除多餘的列3,自動調整每列(雙擊,使每一個信息位婁適合視覺),然後再嘗試按最後一列(從小到大)對工作簿進行排序。
在新工作簿上運行宏時,會生成錯誤消息,並且排序不會在最後一列上運行。然而,除去多餘的色譜柱和間距似乎完美無缺。
因爲在您的新工作簿中,您沒有任何名爲'QueueDetail_20160802_150124'的工作表 – cyboashu
歡迎來到StackOverflow,Aquilam。這裏有幾點讓你開始:(1)[儘量避免使用select](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba (2)[完全限定你的代碼](http://stackoverflow.com/documentation/excel-vba/1576/common-mistakes/5110/qualifying-references#t=201608022225226090252)並寫下'ThisWorkbook.WorkSheets( 「QueueDetail_20160802_150124」)。列(「A:A」)。EntireColumn.AutoFit而不是僅僅是列(「A:A」)。EntireColumn.AutoFit'。 (3)單元格被選中並且圖紙被激活(未被選擇)。 – Ralph
Categoriesashu,如何更改代碼以在當前打開的工作簿中運行? – Aquilam