求助vbs大神一个关于Excel的问题

��由于需要,现要实现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的大神能批评指教,谢谢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值