EXCEL VBA 工作薄复制另一个工作薄(高难度)

二个表同时打开

例 sheet("工作薄a.xlsm").rang("ew表").(b50:cC250). copy sheet("工作薄b.xlsm").rang("op表")..(b50:cC250) 好像是这样 但代码不能运

没什么高难度,用这种标题来引人没意思。
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是否已经打开,如果已经打开,则不会关闭非经代码打开的工作簿

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-28
高难度连分都没有?追问

就5分了

相似回答