use*_*483 1 excel vba excel-vba
我是VBA的新手,并且一直在使用该网站拼凑出一个解决方案.
我需要编写一个宏来提示用户打开一个文件(wb2),从该工作簿中的Sheet1复制一行数据(wb2),然后将其粘贴到原始工作簿(wb)中的下一个空行中工作表Sheet1.我得到了它,直到我尝试在下一个空行添加粘贴代码 - 我现在收到以下错误消息,"运行时错误'438':对象不支持此属性或方法"
任何帮助将不胜感激.
Sub test()
Dim wb As Workbook, wb2 As Workbook
Dim ws As Worksheet
Dim vFile As Variant
'Set source workbook
Set wb = ActiveWorkbook
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
'Set selectedworkbook
Set wb2 = ActiveWorkbook
wb2.Range("A3:E3").Select
Selection.Copy
wb.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
wb2.Close
'Set targetworkbook
Set wb = ActiveWorkbook
End Sub
Run Code Online (Sandbox Code Playgroud)
只是关于这个主题的快速说明:而不是
wb2.Worksheets("Output").Range("J3:R3").Select
Selection.Copy
Run Code Online (Sandbox Code Playgroud)
尝试
wb2.Worksheets("Output").Range("J3:R3").Copy
Run Code Online (Sandbox Code Playgroud)
也代替
wb.Worksheets("Master").Range("C" & LastCellRowNumber).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Run Code Online (Sandbox Code Playgroud)
尝试
wb.Worksheets("Master").Range("C" & LastCellRowNumber).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Run Code Online (Sandbox Code Playgroud)
通常,Select会产生无法解释的错误.特别是在使用多个工作簿时,请尽量远离Select.这段代码几乎直接来自我的工作代码.如果这不能解决问题,请告诉我们.