首页 > 解决方案 > 调试错误 438 Excel VBA 从一个工作簿复制到另一个工作簿

问题描述

当我运行此代码时,我在这行代码中收到以下错误“运行时错误'438':对象不支持此属性或方法”:

'从源书中复制范围

wbFrom.Range("A:A").Copy

Sub CopyOpenItems()
'
' CopyOpenItems Macro
' Copy open items to sheet.
'
' Keyboard Shortcut: Ctrl+Shift+O
'
Dim wbTarget As Workbook 'workbook where the data is to be pasted
Dim wbFrom As Workbook 'workbook from where the data is to be copied
Dim wsFrom As Worksheet
Dim wsTarget As Worksheet

'set to the current active workbook (the source book)
Set wbTarget = ActiveWorkbook
Set wsTarget = wbTarget.Worksheets(1)


'open a workbook that has same name as the sheet name
Set wbFrom = Workbooks.Open("......")
Set wsFrom = wbFrom.Worksheets(1)


'activate the source book
wbFrom.Activate

'clear any thing on clipboard to maximize available memory
Application.CutCopyMode = False

'copy the range from source book
wbFrom.Range("A:A").Copy

'paste the data on the target book
wbTarget.Range("A:A").PasteSpecial

wbFrom.Range("C:C").Copy
wbTarget.Range("C:C").PasteSpecial

wbFrom.Range("D:D").Copy
wbTarget.Range("D:D").PasteSpecial

wbFrom.Range("F:F").Copy
wbTarget.Range("F:F").PasteSpecial

wbFrom.Range("J:J").Copy
wbTarget.Range("J:J").PasteSpecial

wbFrom.Range("K:K").Copy
wbTarget.Range("K:K").PasteSpecial

'clear any thing on clipboard to maximize available memory
Application.CutCopyMode = False

'save the target book
wbTarget.Save
wbFrom.Save


'close the workbook
wbFrom.Close

'activate the source book again
wbFrom.Activate


'clear memory
Set wbTarget = Nothing
Set wbFrom = Nothing

End Sub

我无法弄清楚它有什么问题。我猜代码的要点非常简单,从一个工作簿中复制选定的列并将其粘贴到另一个工作簿中。此外,此代码是可在此链接 https://ccm.net/faq/24666-copy-data-to-another-workbook-in-excel上找到的代码的略微修改版本

标签: excelvbacopy

解决方案


推荐阅读