Excelmacros – 不运行所有的Subs
我有以下的macros,我试图达到以下目的:
- 删除前三行
- 自动调整每一列
- 重命名一些列并删除剩余的。
它似乎只运行删除前3行的第一个例程,没有别的。 我对Macro很新,所以看起来我缺less一些重要的东西来运行所有的Subs?
选项显式
Sub sbDeleteARowMulti() Rows("1:3").Delete End Sub Sub sbChangeColumnWidthMulti() Columns("A:Z").AutoFit End Sub Sub RenDelCols() Dim vCols As Variant Dim vNames As Variant Dim iCols As Integer Dim iCol As Integer Dim wks As Worksheet Dim i As Integer 'define the worksheet Set wks = Worksheets("timesheets2") 'Cols in Receiving to be renamed vCols = Array(2, 9, 14, 15, 16, 19) 'Cols A,L,N,Q,X,Y 'Names from Order to rename them to vNames = Array("Project", "Supervisor", "Employee", "Status", "Date", "Time") With wks iCols = .Cells(1, .Columns.Count).End(xlToLeft).Column For iCol = iCols To 1 Step -1 i = 0 'check if col number is one to change On Error Resume Next i = Application.WorksheetFunction.Match(iCol, vCols, 0) On Error GoTo 0 If i = 0 Then 'column is not in list, delete it .Columns(iCol).EntireColumn.Delete Else 'col is in list, rename it .Cells(1, iCol).Value = vNames(i - 1) End If Next End With End Sub
要调用另一个子内部的子,你只需要做:
Call Subname()
如果没有parameter passing,括号甚至是可选的。
所以你可以像这样编辑你的第一个子文件:
Sub sbDeleteARowMulti() Rows("1:3").Delete Call sbChangeColumnWidthMulti Call RenDelCols End Sub