【发布时间】:2020-09-27 18:55:52
【问题描述】:
我正在编写一个宏,它找到下一个空行,然后将一组数据附加到其中,应该始终将第 1 行作为我的标题行,但我的代码似乎只是覆盖了第 1 行中的标题. 我已经做了一些基本的调试,我已经尝试更改我的变量 row 的代码,但我要么得到错误,要么什么都没有,这是第一个粘贴我的日期,除了它正在粘贴我的数据只放入第 1 行。
Sub MEData()
' Find Next Empty Row & Append ME Data
Dim headers() As Variant
Dim ws As Worksheet
Dim wb As Workbook
Dim row As Integer
row = Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).row
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
Set ws = ThisWorkbook.Sheets("ME Data")
If DesignChangeECN = "" Then
DesignChangeECN = "Not Design Change"
End If
headers() = Array(VBA.Environ("UserName"), Now(), MPP_ECN, MPP_ECN_Description, _
DesignChangeECN, Dept, ShortChangeDescription, ChangeType, "Additional Notes", _
"Open", "Submitted")
Rows(row).Insert shift:=xlShift ' Insert Into Next Empty Row
With ws
For i = LBound(headers()) To UBound(headers())
.Cells(1, 1 + i).Value = headers(i)
Next i
End With
End Sub
所以这里上面的宏用我的数据替换了标题,如果我再次运行它,它只会用另一个副本替换数据......
我不太确定如何让它忽略第 1 行并不断地将数据附加到下一行。
【问题讨论】:
-
.Cells(1, 1 + i).Value = headers(i)... 第一个硬编码的1是你的问题。 -
请参阅this,了解查找最后一行的更好方法。
-
哎呀。这就是我复制潜艇所得到的。 .我应该能够改变宏的那部分并得到我的结果。我现在感觉很笨。