尝试根据另一列的最后一行复制一列中的值

时间:2019-06-17 13:52:10

标签: excel vba copy-paste

我有一个带有四列设置的Excel工作表,如下所示。

Excel Screen dump

我要尝试的是将B列中的单元格内容复制到C列,只要这4列的任何单元格中都有活动行。我的意思是包括值a11。

我发现了很多复制文本的方法,但是如果一个单元格为空,它们都会停止。

这应该通过自动运行宏在Excel模板中工作以填写表格。我尝试了许多在网上其他站点上找到的方法,但是没有任何效果。它们似乎都停在任何行的第一个空白单元格中……

Sub Auto_Open()
    With Range("B1", Range("B1").End(xlDown))
        Sheets("Upload").Range("C" & Rows.Count).End(xlUp).Offset(0).Resize(.Count) = .Value
    End With
End Sub

我最后一个代码的输出(在此处发布)在第一个空单元格处结束,我无法使其继续...

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

这应该有效:

此函数在整张表中查找最后使用的行。

Sub Auto_Open()

Sheets("Upload").Range("C1:C" & LastRow(ActiveSheet)).Value = Sheets("Upload").Range("B1:B" & LastRow(ActiveSheet)).Value

End Sub


Function LastRow(Sh As Worksheet)
    On Error Resume Next
    LastRow = Sh.Cells.Find(What:="*", _
                            After:=Sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function