没什么高难度,用这种标题来引人没意思。
sheet里面出现“.xlsm” 也是醉了。
跨工作簿操作被你作践成这样也是第一次见到
追问万年金刚钻:不好意思,本人不会,只能写这样了。
追答不懂就实实在在把需求说清楚。
【要把a .xlsm中 ew表的区域b50:cC250中的所有内容,拷贝到b.xlsm中op表的相同位置去】
这样一句话不是清清楚楚吗?何必说什么高难度?
Sub bookCopy()
Dim bookA$, bookB$, BK As Object, bkAExist As Boolean, bkBExist As Boolean
bookA = "a.xls": bookB = "b.xls"
For Each BK In Application.Workbooks
If BK.Name = bookA Then bkAExist = True
Next
If Not bkAExist Then Application.Workbooks.Open ThisWorkbook.Path & "\" & bookA
For Each BK In Application.Workbooks
If BK.Name = bookB Then bkBExist = True
Next
If Not bkBExist Then Application.Workbooks.Open ThisWorkbook.Path & "\" & bookB
Workbooks(bookA).Sheets("ew").Range("B50:CC250").Copy Workbooks(bookB).Sheets("op").Range("B50")
Application.CutCopyMode = True
If Not bkAExist Then Workbooks(bookA).Close
If Not bkBExist Then Workbooks(bookB).Save: Workbooks(bookB).Close
End Sub
限于手头只有2003,用了xls文档,你可以把xls改成xlsm(注意如果xlsm中含有宏,那你必须降低宏安全性以便代码自动打开ab工作簿,或者你运行代码前自行打开ab工作簿),代码运行时会检测ab是否已经打开,如果已经打开,则不会关闭非经代码打开的工作簿