大家好,我有两个名为“a.xlsm”的工作簿,另一个是“b.xlsx”。文件b.xlsx位于名为“b”的不同文件夹中。我想要做的是将a.xlsm中的行A中的单元格移动到b.xlsx中的单元格A2中,然后将其移动到下一个单元格。
这是我的代码
Private Sub CopyNota_Click()
On Error GoTo errorhandler:
Application.ScreenUpdating = False
Dim strpath As String
Dim copysheet As Worksheet
Dim pastesheet As Worksheet
Set copysheet = Worksheets("sheet3")
Set pastesheet = Worksheets("sheet5")
strpath = "E:\b\"
Filename = Dir(strpath & "b.xlsx")
If IsEmpty(Range("B2")) Then
Workbooks("b.xlsx").Worksheets("sheet3").Range("H2:J2").Copy destination:=Range("B2:D2")
Range("A2").Copy destination:=Workbooks("b.xlsx").Worksheets("sheet3").Range("A2")
Workbooks("b.xlsx").Save
Application.CutCopyMode = False
Application.ScreenUpdating = True
Else
Workbooks("b.xlsx").Worksheets("sheet3").Range("H2:J2").Copy
Worksheets("sheet5").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Workbooks("b.xlsx").Save
'below is the code that didn't work
Workbooks("b.xlsx").Worksheets("sheet3").Range("A2").Value _
= Worksheets("sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value
End If
errorhandler:
If Err.Number = "52" Then
MsgBox "Open The Workbooks First!!!"
Exit Sub
End If
End Sub
提前致谢
答案 0 :(得分:0)
你不需要if语句:
If IsEmpty(Range("B2")) Then
如果B2为空,那么无论如何它都是end(xlup).offset(1,0)的偏移量。
代码运行时哪个工作簿处于活动状态?该代码假定它是WorkbookA,但我认为值得与您核实。
看起来你还没有打开Workbook B?如果你打开它会更容易,但如果你没有
仍然可行最后,关于您的具体问题,
Worksheets("sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value
将始终为空,因为它是最后一行数据偏移1行