0

我的问题是为 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

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

4

1 回答 1

0

我解决了它:

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

我稍后会在这里发布。

于 2013-11-12T10:42:14.737 回答