��由于需要,现要实现Excel跨文件复制粘贴批处理,因为还没有学VBA,所以想尝试用VBS解决问题,但是调试的时候却显示 "未知的运行错误" 。
��(下面是我的代码)
'定义文件数量f,行数变量r,文件总数all,消息框返回变量msg
Dim f,r,all,msg
'初始化文件数量f为1,行数变量为1
f=1
r=1
'输入文件总数all并询问是否退出
all=InputBox("请输入Excel文件总数")
If all=Empty Then
msg=MsgBox("是否退出?",1+32+4096,"")
If msg=6 Then
WScript.Quit
End If
End If
'初始化为整型
all=Int(all)
'all=all+1
all=all+1
'定义常量A为"A"
Const A="A"
'初始化文字常量
Const path1="C:\Users\Administrator\Desktop\学案配餐\"
Const path2=".xls"
Const name="over"
'定义私有变量ExcApp,ExcWs,ExcSh
Private ExcApp,ExcWs,ExcSh
'初始化def
def=name
'定义函数:打开Excel
Public Sub OpenExcel(def,path1,path2)
' 调用Application对象
Set ExcApp=CreateObject("Excel.Application")
' 隐藏当前窗口(False)
ExcApp.Visible = False
' 读取Excel文件的路径
Set ExcWs=ExcApp.Workbooks.Open(path1&def&path2)
' 打开指定的工作表(1)
Set ExcSh=ExcWs.Worksheets("Sheet1")
End Sub
def=name
'定义函数:关闭Excel
Public Sub CloseExcel(def,path1,path2)
' 储存Excel文件
ExcWs.Save
' 关闭应用程序
ExcApp.Quit
' 释放三个对象的内存
Set ExcApp=Nothing
Set ExcWs=Nothing
Set ExcSh=Nothing
End Sub
'在文件夹内用Do …… Loop迭代
Do
' 打开Excel文件
def=f
Call OpenExcel(f,path1,path2)
' 复制("A2")的内容
ExcWs.ActiveSheet.Range("A2").Copy
' 关闭Excel文件("C:\Users\Administrator\Desktop\学案配餐\"&f&".xls")
Call CloseExcel(def,path1,path2)
' 打开Excel文件("C:\Users\Administrator\Desktop\学案配餐\整合.xls")
def=name
Call OpenExcel(def,path1,path2)
' 粘贴内容到(Chr(34)&A&r&Chr(34))
ExcWs.ActiveSheet.Range(Chr(34)&A&r&Chr(34)).Paste
' 关闭Excel文件
Call CloseExcel(def,path1,path2)
' r=r+1
r=r+1
' 打开Excel文件("C:\Users\Administrator\Desktop\学案配餐\"&f&".xls")
def=f
Call OpenExcel(def,path1,path2)
' 复制"A3"-"E32"的内容
ExcWs.ActiveSheet.Range("A3:E32").Copy
' 关闭Excel文件("C:\Users\Administrator\Desktop\学案配餐\"&f&".xls")
Call CloseExcel(def,path1,path2)
' 打开Excel文件("C:\Users\Administrator\Desktop\学案配餐\整合.xls")
def=name
Call OpenExcel(def,path1,path2)
' 粘贴内容到(Chr(34)&A&r&Chr(34))
ExcWs.ActiveSheet.Range(Chr(34)&A&r&Chr(34)).Paste
' 关闭Excel文件("C:\Users\Administrator\Desktop\学案配餐\整合.xls")
Call CloseExcel(def,path1,path2)
' r=r+1
r=r+31
' f=f+1
f=f+1
' 直到not(不能)打开
Loop Until f=all
'输出"完成"
MsgBox "完成!"
��下面是报错的截图。
��希望有懂VBS的大神能批评指教,谢谢。