macros,增加行号
我正在使用Excelmacros来剪切并粘贴一些数据,并将其添加到列表的末尾。 目前它正在覆盖最后一个条目。
'macro Range("A3:R93").Select Selection.Copy Range("T100000").Select Selection.End(xlUp).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
这将带我到列T中最后现有的条目。
我希望粘贴我的新数据之后,所以需要增加我的当前行1
有没有一个简单的方法来做到这一点?
您不需要select一个单元格或单元格范围来复制或粘贴; 事实上,最好避免这种做法。
Range("A3:R93").Copy _ Destination:=Range("T" & Rows.Count).End(xlUp).Offset(1, 0)
仅限数值:
With Range("A3:R93") Range("T" & Rows.Count).End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value End With
这将findT列中最后一个使用的单元格,然后使用Range.Offset属性将粘贴1行的目标向下移动0个列。
如果复制/粘贴的源区域或目标区域可能包含合并的单元格,则需要先将其取消合并。 在复制/粘贴区域边缘,合并的单元格可能是源或目标的一半和一半的位置,这一点尤为重要。
Dim rng As Range Set rng = Range("A3:R93") rng.UnMerge With Range("T" & Rows.Count).End(xlUp).Offset(1, 0).Resize(rng.Rows.Count, rng.Columns.Count) .UnMerge rng.Copy Destination:=.Cells End With
请参阅如何避免使用Excel中的selectVBAmacros来获取更多的方法来摆脱依靠select和activate来实现您的目标。
这是我现在有的,工作正常,谢谢你Jeeped
Sub Report5() ' ' Create Report ' ' Range("DA3:DC10000").Clear If Range("aw4") Then With Range("BB3:BD9") Range("DA" & Rows.Count).End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value End With End If If Range("aw5") Then With Range("BB10:BD23") Range("DA" & Rows.Count).End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value End With End If
等另外50个左右的分类