多张纸的macros不能正常工作

Sub RunMacroOnAllSheetsToRight() For i = ActiveSheet.Index To Sheets.Count Call MyFunction(i) Next i End Sub Function MyFunction(i) 'Code goes here Columns("R:R").ColumnWidth = 8.1 [S1].Resize(, 14).EntireColumn.Insert MsgBox "I'm currently on sheet " & ThisWorkbook.Sheets(i).name End Function 

我发现了一个运行macros的代码示例,它应该在活动页面右侧的所有页面上运行,但是它不工作,它仍然在一张纸上运行,但msgbox显示页面已更改(每次显示不同的名称)。 你可以帮我吗? 我是vba-excel的新手。

您需要激活每张纸。 然后激活原始表单。

  Sub RunMacroOnAllSheetsToRight() Dim a As Integer a = ActiveSheet.Index 'Save current sheet For i = a To Sheets.Count Call MyFunction(i) Next i Sheets(a).Activate 'At the end, activate original sheet End Sub Function MyFunction(i) 'Code goes here Sheets(i).Activate 'Activate each sheet Columns("R:R").ColumnWidth = 8.1 [S1].Resize(, 14).EntireColumn.Insert MsgBox "I'm currently on sheet " & ActiveSheet.Name 'Trustworthy information End Function