我有一个定期导入的数据表,长度会发生变化 .
所以,我想编写一些VBA代码,删除任何额外的行,并将任何公式自动填充到最后一行 .
我完成了第一部分 . 此代码查找最后一行,并删除其下方的任何内容 .
Sub CleanData()
Dim lastrow As Long
Sheets("Open Operations").Select
Range(Cells(Rows.Count, 1).End(xlUp).Offset(1), _
Cells(Rows.Count, 1)).EntireRow.Delete
lastrow = ActiveSheet.UsedRange.Rows.Count
End Sub
我坚持的部分是我不确定如何自动填充任何需要它的列 . 这些列可能正在改变,所以我希望我的代码能够处理这个 . 所以,我想迭代第一行中的所有单元格,从第一列到最后一列使用 . 然后,如果该单元格是公式,我想将公式填充到lastrow,如第一个代码块中所定义 .
这是我到目前为止所拥有的:
Dim lastcolumn As Long
lastcolumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
For Each c In ActiveSheet.Range("A1:A" & lastcolumn).Cells
If c.HasFormula = True Then
但我对VBA很新,我不知道如何使列填充到之前定义的Last Row .
编辑:澄清 - 我想迭代每列中的每个第一个单元格,直到最后一列 . 然后,如果该单元格包含公式,我想将整列自动填充/填充到第一个代码块中定义的lastrow .
谢谢 .
2 回答
我设法创建了完成上述任务的代码:
以下是任何感兴趣的人的代码:
("A1:A" & lColumn)
似乎混淆了行和列 . 我想你想要:编辑:也许只是以下内容: