我有一个宏代码,我希望根据单元格Q2的第一个值自动填充列Q的值,直到最后一个活动行为基于相邻列的最后一行(说明列P)。问题是我不希望在第二季度修复起始点,因为一旦完成第一次自动填充,该行将继续更改。
例如 - 首先我可能想要将Q2自动填充到Q10,假设最后一行为第10行,但最后一行将变为第20行,因此我想将Q11复制到Q20,依此类推。任何简单的宏来做到这一点?
非常感谢任何支持。
由于 马尼斯
答案 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