通过cmd运行excel宏

时间:2019-05-28 18:20:18

标签: excel vba cmd

我编写了一个VBA代码,该代码接受一个excel文件并取消合并其中的所有单元格,然后将值从合并的单元格复制到新的未合并的单元格中。 当我在excel中运行代码时,它运行良好。 当我尝试通过cmd运行鳕鱼时,出现错误。 我从cmd执行代码,因为它需要通过SAS在多个Excel文件上运行。

VBS代码为:

Sub UnMergeFill(ByVal ws As Worksheet)

Dim cell As Range, joinedCells As Range

For Each cell In ws.UsedRange
    If cell.MergeCells Then
        Set joinedCells = cell.MergeArea
        cell.MergeCells = False
        joinedCells.Value = cell.Value
    End If
Next

End Sub

sub UnMergeFillAllSheets()
    Dim ws As Worksheet
    for Each ws In Worksheets
         UnMergeFill ws
    Next
End Sub

用于运行代码的cmd命令:

"C:\Users\sm\Documents\work\excel_macro\UnMergeFill.vbs" "C:\User\sm\Documents\work\excel_macro\r.xlsx"

我得到的错误消息是:

脚本: c:.. \ UnMergefill.vbs

行:1

字符:26

错误:Expectef')'

代码800A03EE

源Microsoft VBScript编译错误

谢谢大家的帮助

1 个答案:

答案 0 :(得分:0)

我可能是错的,但是查看错误代码以及您的VBA代码,我认为问题(或至少其中一个问题)是您缺少一些括号。

sub UnMergeFillAllSheets()
    Dim ws As Worksheet
    for Each ws In Worksheets
         UnMergeFill(ws) 'Added parentheses
    Next
End Sub

尝试使用这些代码运行代码,看看是否有帮助。谢谢,祝你好运!