在多个excel文件中执行宏

时间:2013-06-18 18:42:53

标签: excel vba excel-vba

我的问题是为excel设置一个宏,它必须使相同的操作重复发展另一个excel文件及其宏,我展示:

我有一个带有一些宏的基本.xlsm文件,最终用我的有用数据创建一个新的excel文件。 我已经将基本文件复制到一堆具有正确行为的目录中。

我可以使用Dir()进行某种扫描并说: - 打开excel。 - 运行宏, 吗

由于ActiveWorkbook和ActiveSheets的使用,我可能会遇到一些代码问题这里有样本

  

这用于给出我创建的新xlsm作为文件的结果   名:

    nombre = Range("B1")
    camino = ThisWorkbook.Path
    Path = camino + "\" + nombre + ".xlsm"
    ActiveWorkbook.SaveAs Filename:=(Path)

提前谢谢你,

第二次更新

上一个宏,它的作用是将同一目录中的大量文本文件中的大量信息导入并分发到同一个工作表,然后用正确的名称保存文件(我给你看的内容)。当我单独使用它时,已创建的新文件在与原始文件相同的宏中,并且我继续从那里执行更多宏。我希望这有助于^^

这是一个重要的脚本,删除了我不需要的信息(我不想删除我需要的信息),

Sub abDOS_borrar_no_interesa() 'Borro lo que sea -1

Application.ScreenUpdating = False
f = 5

Do While f < 3787
c_pasadas = 1
c = 5
Do While c_pasadas < colum + 1
leo = Cells(f, c)
If leo = "-1" Or leo = "0" Then
Cells(f, c - 2).ClearContents 'si no quieres que se borre borra esta linea o comentala
Cells(f, c - 1).ClearContents 'si no quieres que se borre borra esta linea o comentala
Cells(f, c).ClearContents 'si no quieres que se borre borra esta linea o comentala

'Si quieres que en vez de borrar los datos los ponga en gris
'Cells(f, c - 2).Font.Color = -16711681
'Cells(f, c - 1).Font.Color = -16711681
'Cells(f, c).Font.Color = -16711681


End If
c = c + 3
c_pasadas = c_pasadas + 1
Loop
f = f + 1
Loop

Cells(2, 1) = Mid(Range("A1"), 5, 4)
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

更新更新 我找到了一个示例代码:

    Sub ejecucion_Total()
    Dim xl As Object
    Set xl = CreateObject("Excel.Application")
    ThisWorkbook.Sheets(1).Cells(2, 1).Activate
    xl.Workbooks.Open (ActiveCell)
    xl.Run "procesar"
    xl.ActiveWorkbook.Close (True)
    xl.Quit
    Set xl = Nothing 
    End Sub

正如我所料,它在保存必须创建的文件时给我一个错误。

1 个答案:

答案 0 :(得分:0)

我解决了它:

我的解决方案使用了我发布的 更多更新代码 的迭代变体。 它打开并运行其他excel中的代码,然后关闭它们。 (我不得不改变一些相关用途,如Activesheet等)。

我稍后会在这里发布。