在扩展公式的同时在两个现有行之间粘贴数据

时间:2017-08-29 04:42:13

标签: excel vba

我有一张表(sheet2)连接到CSV文件,该文件包含动态数据。我通过应用列过滤器复制数据,然后将其粘贴到sheet1,以便可以使用宏以某种方式格式化/显示它。我希望能够在sheet1上的两个现有行之间插入数据,并使这些行中的公式自动更新为动态范围。

所以基本上......

ExistingRow1

Blank Row <- insert data here, having it expand down 

ExistingRow2 | formula <- formulas should update to include new rows from sheet2

1 个答案:

答案 0 :(得分:0)

下面的代码将执行您所描述的内容,动画.gif演示它可以正常工作。请注意,您可以看到正在使用的公式在公式栏中,然后将工作表2上的选择复制到Sheet1,其中行根据需要移动。

enter image description here

Sub insertRows()
Dim sh2 As Worksheet, sh1 As Worksheet
Dim r1 As Range, r2 As Range, i As Integer
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
sh2.Activate
Set r2 = Application.InputBox("select rows to copy on Sheet2", , , Type:=8)
sh1.Activate
Set r1 = Application.InputBox("select blank row on Sheet1", , , Type:=8)
For i = 1 To r2.Rows.Count - 1
  r1.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
r2.Copy
r1.Offset(-r2.Rows.Count + 1, 0).Select
sh1.Paste
End Sub

虽然这是你所描述的,但这是一种尴尬的做事方式,如果对数据的位置有更多了解等等,那么可以使用更优雅的方法。