VBA宏代码自动填充值

时间:2017-07-14 06:49:24

标签: vba excel-vba excel

我有一个宏代码,我希望根据单元格Q2的第一个值自动填充列Q的值,直到最后一个活动行为基于相邻列的最后一行(说明列P)。问题是我不希望在第二季度修复起始点,因为一旦完成第一次自动填充,该行将继续更改。

例如 - 首先我可能想要将Q2自动填充到Q10,假设最后一行为第10行,但最后一行将变为第20行,因此我想将Q11复制到Q20,依此类推。任何简单的宏来做到这一点?

非常感谢任何支持。

由于 马尼斯

3 个答案:

答案 0 :(得分:0)

 'Copy LT
        Workbooks(NameOfFile).Activate
        Range("PQ" & Count & ":PQ" & Count).Copy
        ThisWorkbook.Sheets("Indata").Activate
        Range("Q" & Lastrow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

        Dim FillTo As Range
        Set FillTo = Range("P" & ActiveSheet.Rows.Count).End(xlUp).Offset(0, 1)     'Change 'P' if youhave another active column
        Range(FillTo, FillTo.End(xlUp)).FillDown

答案 1 :(得分:-1)

请尝试以下代码:

Sub Filldown()
Dim FillTo As Range
    Set FillTo = Range("P" & ActiveSheet.Rows.Count).End(xlUp).Offset(0, 1)     'Change 'P' if youhave another active column
    Range(FillTo, FillTo.End(xlUp)).Filldown
End Sub

答案 2 :(得分:-1)

这应该对你有帮助。

Sub Demo()
    Dim ws As Worksheet
    Dim lastRow1 As Long, lastRow2 As Long
    Dim srcRange As Range, fillRange As Range

    Set ws = ThisWorkbook.Worksheets("Sheet1") 'change to your sheet
    With ws
        lastRow1 = .Cells(.Rows.Count, "Q").End(xlUp).Row 'last row of Column Q
        lastRow2 = .Cells(.Rows.Count, "P").End(xlUp).Row 'last row of Column P
        Set srcRange = .Range("Q" & lastRow1)
        Set fillRange = .Range("Q" & lastRow1 & ":q" & lastRow2)
        srcRange.AutoFill Destination:=fillRange
    End With
End Sub