|
各位大师,正面这段程序是为了更新工作表数据,方法是在指定的工作簿中查找相应工作表,找到后将现有工作表删除,并将找到的新工作表数据拷贝到(插入)该位置,程序顺利扫后(查看数据确定所有工作表数据已更新)但却保存不了,点保存(或执行保存指令ThisWorkbook.Save)工作簿就会出现导演(自动重启),请各大师指点。
Sub copyfile()
Dim ShN As Integer
Application.ScreenUpdating = False
Dim wb As Workbook
Application.DisplayAlerts = False
f = Dir("E:\课程信息\排课草表.xls*") '将工作簿名赋值给f
If f = "" Then '如果对象文件不存在则退出程序
MsgBox "“E:\课程信息\排课草表.xls*”文件不存在或文件路径不正确!"
Exit Sub
Else
ShN = 0
Set wb = Workbooks.Open("E:\课程信息\" & f)
i = 0
Do While i < wb.Sheets.Count
j = 0
i = i + 1
Do While j < ThisWorkbook.Sheets.Count
j = j + 1
If wb.Sheets(i).Name = ThisWorkbook.Sheets(j).Name Then
ThisWorkbook.Sheets(j).Delete
wb.Sheets(i).Copy ThisWorkbook.Sheets(j)
ShN = ShN + 1
End If
Loop
Loop
'MsgBox wb.Sheets.Count & "与" & ShN
If wb.Sheets.Count > ShN Then
MsgBox "“E:\课程信息\课程总表.xls*”工作薄中的工作表名与本工作薄中工作表名不一至," & vbCrLf & vbCrLf & "请将E:\课程信息\课程总表.xls*”工作薄中的工作表名改正后重新点击按钮!"
wb.Close False
Exit Sub
End If
wb.Close False
End If
f = Dir
Sheets(1).Activate '始终将工作表1作为活动工作表
End Sub
|
|