【发布时间】:2020-01-07 22:06:24
【问题描述】:
我是 VBA 新手,正在尝试编写 VBA 代码,如果最后一行为空,则可以添加新行。但是,当我使用此代码时,发生的情况是它在没有意义的位置添加了行。我的最后一行是第 15 行。当我尝试运行第 15 行的代码时,它会在第 15 行之后添加一行,无论它是否为空,当我运行第 14 行的代码时,它会在第 4 行之后添加一行,无论它是是否为空。当我运行第 13 行的代码时,无论它是否为空,它都不会做任何事情。
'
' Add_A_Row Macro
' Adding a row to a row that is not blank
'
' Keyboard Shortcut: Ctrl+Shift+A
'
Dim sh As Worksheet
Dim rw As Range
Dim RowCount As Integer
RowCount = 0
Set sh = ActiveSheet
For Each rw In sh.Rows
If sh.Cells(rw.Row, 15).Value <> "" Then
rw.Insert Shift:=xlShiftDown, CopyOrigin:=xlInsertFormatOriginConstant
Debug.Print ("Hit")
Exit For
End If
Next rw
End Sub
【问题讨论】:
-
数字 15 指的是列。你必须在哪一列检查单元格是否为空?
-
我对这个推理有点困惑,最后一行下面还有更多数据吗?为什么要在已有空白行的地方添加空白行?
-
哦,我以为15指的是行号,我想检查第15行是否有数据,然后添加一个空白行。在我的 Excel 表中,每一列代表一个不同的部门,从第 3-15 行开始,每个部门都可以写下他们的停机时间。从第 15 行开始,有多个公式可以计算他们输入的数据。第 15 行是供人们输入信息的可编辑区域的最后一行。当最后一行中至少有一个条目时,我希望创建一个新行,以便他们可以继续记录停机时间,而不是手动添加一行。