Excelmacros – 不运行所有的Subs

我有以下的macros,我试图达到以下目的:

  1. 删除前三行
  2. 自动调整每一列
  3. 重命名一些列并删除剩余的。

它似乎只运行删除前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