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

Excel 移动到下一个单元格后复制值,excel,vba,Excel,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 strpa

大家好
我有两本工作手册,一本名为“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

提前感谢

您不需要该if声明:

    If IsEmpty(Range("B2")) Then
如果B2为空,则它是端点的偏移量(xlup)。无论如何,偏移量(1,0)

代码运行时,哪个工作簿处于活动状态?代码假定它是WorkbookA,但我认为值得与您一起检查

而且看起来你没有打开工作簿B??如果你打开它,事情会变得更容易,但如果你不打开它,事情仍然是可行的

最后,关于你的具体问题

Worksheets("sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value

将始终为空,因为它是数据的最后一行,偏移了1行

在代码运行时,两个工作簿都处于活动状态,因此如何获取“A2”的值在代码移动到下一个单元格后,在工作簿关闭时是否可能在vba中获得一些值?在不知道数据或目标的情况下,我认为对于初学者,您需要删除偏移量(1,0)。从上面引用的那一行?此外,我无法发布与关闭的工作簿交互的信息,因为我不在我的普通PC上(带有代码片段),但是从内存中,它使用了VBA中的Excel 4语言。这会帮你搞定的。这是我的数据a.xlsm数据开始于单元格A2无名称日期Komp b.xlsx在单元格H2:J2中包含名称日期和Komp,在单元格A2中开始时为空我的第一个目标是检查a.xlsx中的单元格B2是否为空,然后将范围H2:J2中的值复制到a.xlsm中,并放入单元格B2:D2中,如果不是,它将移动到下一个单元格并放置在那里我的第二个目标是在上述方法工作后,我想在a.xlsm中获取数字,并将其放置在b.xlsx中的单元格A2中,每次按下按钮时,其值都会自动更改