我编写了一个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编译错误
谢谢大家的帮助
答案 0 :(得分:0)
我可能是错的,但是查看错误代码以及您的VBA代码,我认为问题(或至少其中一个问题)是您缺少一些括号。
sub UnMergeFillAllSheets()
Dim ws As Worksheet
for Each ws In Worksheets
UnMergeFill(ws) 'Added parentheses
Next
End Sub
尝试使用这些代码运行代码,看看是否有帮助。谢谢,祝你好运!