如何将EXCEL工作簿中所有工作表一次性运行同一个宏或模块?

请问:如何将EXCEL工作簿中所有工作表一次性运行同一个宏或模块?以下内容是每个sheet都要运行的宏,Sub宏1()''宏1宏''Application.GotoRef... 请问:
如何将EXCEL工作簿中所有工作表一次性运行同一个宏或模块?
以下内容是每个sheet都要运行的宏,
Sub 宏1()
'
' 宏1 宏
'

'
Application.Goto Reference:="R1C9:R308C15008"
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Add(ActiveCell.Offset(183,0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, ,xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Add(ActiveCell.Offset(182,0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, ,xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Add(ActiveCell.Offset(181,0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue._
Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Add(ActiveCell.Offset(180,0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, ,xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("1红分析x").Sort.SortFields.Add(ActiveCell.Offset(179,0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, ,xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
With ActiveWorkbook.Worksheets("1红分析x").Sort
.SetRange ActiveCell.Range("A1:VDX308")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
End Sub
请问1:
能否一次性将“这个sheet的宏”应用于整个工作簿中所有“30个sheet”?如果可以宏应该要怎么改写,具体怎么操作?

请问2:
能否一次性将“这个sheet的宏”应用于所有10个工作簿?如果可以宏应该要怎么改写,具体怎么操作?

说明:
总共十个工作簿,每个工作簿有30个“sheet”。
第一工作簿中sheet命名分别是”1分红析、2红分析,依此至30红分析“。
第二工作簿中sheet命名分别是”31分红析、32红分析,依此至60红分析“。
依此类推
第十个工作簿中sheet命名分别是”271分红析、272红分析,依此至300红分析“。

备注:
每个工作簿文件都很大,每个工作簿都到极限,不能再合并了。以上两个问题,如果做不到第2个问题不容易做到,各位大侠烦请告诉我第一问题就行。不甚感谢~~
展开
 我来答
百度网友00e0b84
2014-08-27 · TA获得超过483个赞
知道小有建树答主
回答量:519
采纳率:0%
帮助的人:466万
展开全部
两个都是可以实现的。
第一个,如果每个表是顺序建立的,从表一红分析到三十红分析可用worksheet(1) 到(30)代替。
利用for循环解决。
如果不是,则需要把i带入表的名称,如 i & "红分析",再利用for解决。
工作簿,则需将其放在一个文件夹,数字顺序命名。循环打开,再执行上述宏。

另外建议简化代码。相同的前缀加with 仅数字不同的用For
更多追问追答
追问
谢谢你的回答:能否帮忙一把宏写出来,我对宏不是很懂。

第一个问题的宏要怎么写?(附:表不是顺序建立的)

第二人问题的宏要怎么写?
追答

想了一下,还是一次性完成所有比较好。因为你的数据量比较大,可能时间会很久。

我这个代码是一次执行单个工作簿30个表的代码。

Sub 宏1()
For i = 1 To 30
    Application.Goto Reference:="R1C9:R308C15008"
    With Sheets(i & "红分析").Sort
        .SortFields.Clear
        For j = 183 To 179 Step -1
            .SortFields.Add(ActiveCell.Offset(j, 0).Range("A1:VDX1"), _
            xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = _
            RGB(255, 0, 0)
        Next j
       .SetRange ActiveCell.Range("A1:VDX308")
       .Header = xlGuess
       .MatchCase = False
       .Orientation = xlLeftToRight
       .SortMethod = xlPinYin
       .Apply
   End With
End Sub
bdxbr
推荐于2017-11-26 · TA获得超过1053个赞
知道小有建树答主
回答量:957
采纳率:44%
帮助的人:310万
展开全部
用for循环
Sub 宏1()
For i = 1 To Sheets.Count
Sheets(i).Select
Application.Goto Reference:="R1C9:R308C15008"
ActiveWorkbook.Sheets(i).Sort.SortFields.Clear
ActiveWorkbook.Sheets(i).Sort.SortFields.Add(ActiveCell.Offset(183, 0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Sheets(i).Sort.SortFields.Add(ActiveCell.Offset(182, 0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Sheets(i).Sort.SortFields.Add(ActiveCell.Offset(181, 0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Sheets(i).Sort.SortFields.Add(ActiveCell.Offset(180, 0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
ActiveWorkbook.Sheets(i).Sort.SortFields.Add(ActiveCell.Offset(179, 0) _
.Range("A1:VDX1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(255, 0, 0)
With ActiveWorkbook.Sheets(i).Sort
.SetRange ActiveCell.Range("A1:VDX308")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Next
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹏鹏0314
2014-08-27 · 超过68用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:125万
展开全部
一种办法:选中所有表格,再录制宏。
另一种办法:最简单的办法是用VBA修改宏,枚举每一张表,执行相同的操作步骤。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式