移动到下一个单元格后复制值

时间:2015-03-20 02:22:30

标签: excel excel-vba vba

大家好,我有两个名为“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

提前致谢

1 个答案:

答案 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行