我是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
sbanders.. 6
只是关于这个主题的快速说明:而不是
wb2.Worksheets("Output").Range("J3:R3").Select Selection.Copy
尝试
wb2.Worksheets("Output").Range("J3:R3").Copy
也代替
wb.Worksheets("Master").Range("C" & LastCellRowNumber).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
尝试
wb.Worksheets("Master").Range("C" & LastCellRowNumber).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
通常,Select
会产生无法解释的错误.特别是在使用多个工作簿时,请尽量远离Select
.这段代码几乎直接来自我的工作代码.如果这不能解决问题,请告诉我们.
只是关于这个主题的快速说明:而不是
wb2.Worksheets("Output").Range("J3:R3").Select Selection.Copy
尝试
wb2.Worksheets("Output").Range("J3:R3").Copy
也代替
wb.Worksheets("Master").Range("C" & LastCellRowNumber).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
尝试
wb.Worksheets("Master").Range("C" & LastCellRowNumber).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
通常,Select
会产生无法解释的错误.特别是在使用多个工作簿时,请尽量远离Select
.这段代码几乎直接来自我的工作代码.如果这不能解决问题,请告诉我们.