|
本帖最后由 jsczxie 于 2016-10-26 21:18 编辑
正好单位要对多个电子表进行生成图表设置,同样的操作觉得比较麻烦就搜了一下,找到这个代码想直接套用。但是有一个问题就是运行后会生成两张图表,不知道有高手能说明一下吗?
我用红色标出来的是我将这两句去除了,直接用。
下面是我的代码
-------------------------------------------------------------------------------------------
Sub 多个文件应用宏()
'
' 选择一个目录对每个文件应用宏
Dim Path$, File$
Dim Wb As Workbook, sht As Worksheet
Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show Then
Path = .SelectedItems(1)
File = Dir(Path & "\*.xls")
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Do Until LenB(File) = 0
Set Wb = Workbooks.Open(Filename:=Path & "\" & File)
'打开路径下的文件
For Each sht In Wb.Worksheets
'下面学生表一改成自己的表名
'If sht.Name = "学生表一" Then
'TO DO SOMETHING,这里填写每个Excel工作薄文件要操作的宏,不会写可以录制一个宏,然后把录制的
宏的代码填在这里,具体可以看后面
'
' 宏1 宏
'
'
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlBarStacked
ActiveChart.SetSourceData Source:=Range("Sheet1!$D:$D,Sheet1!$H:$H")
ActiveSheet.Shapes("图表 1").IncrementLeft 311.25
ActiveSheet.Shapes("图表 1").IncrementTop -82.5
'End If
Next
Wb.SaveAs Filename:=Path & "\" & File
'保存替换原文件
Wb.Close True
'关闭文件
File = Dir
Loop
Application.DisplayAlerts = True
'关闭提示,与前面的FALSE对应
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End If
End With
End Sub
-------------------------------------------------------------------------------------------
|
|