使用VBA将行添加到Excel表中而不启用总行

我有一个表(称为PortDistances )显示端口对之间的距离。 我已经把它设置为不显示总计行,因为它是根本不相关的数据。

我也有一个用户窗体添加一行数据到表的末尾,使用下面的代码:

 Private Sub AddOne_OK_Click() Dim lrow As Long lrow = Worksheets("Port distances").Cells(Rows.Count, 1).End(xlUp).Row ' Add new port pair distance Worksheets("Port distances").Cells(lrow + 1, 1).Formula = "=" & Worksheets("Port distances").Cells(lrow + 1, 2).Address(False, False) & "&" & Worksheets("Port distances").Cells(lrow + 1, 3).Address(False, False) ' Extend formulas Worksheets("Port distances").Cells(lrow + 1, 6).Formula = "=" & Worksheets("Port distances").Cells(lrow + 1, 1).Address(False, False) & "&" & Worksheets("Port distances").Cells(lrow + 1, 4).Address(False, False) ' Extend formulas Worksheets("Port distances").Cells(lrow + 1, 2).Value = strFrom ' POL Worksheets("Port distances").Cells(lrow + 1, 3).Value = strTo ' POD Worksheets("Port distances").Cells(lrow + 1, 4).Value = Val(Box_DistNew.Value) ' Distance Worksheets("Port distances").Cells(lrow + 1, 5).Value = "Schedule App" ' Source Unload Me End Sub 

令人讨厌的是,每次运行它时,添加的行都会变成总计行,通常会问我是否要覆盖现有的总行公式(同样要记住,没有总计行开头)。

我已经尝试添加Worksheets("Port distances").ListObjects("PortDistances").ShowTotals = False将其重新转换Worksheets("Port distances").ListObjects("PortDistances").ShowTotals = False线,但只是抹那行。 另一方面,手动清除“总计行”checkbox只是把它变成一个法线。

为什么它把它作为一个总计行,我该如何阻止它呢?

您可以使用Worksheets("Port distances").ListObjects("PortDistances").Listrows.add添加新行,然后填充它。 例如:

 Dim lo As ListObject Dim lr As ListRow Dim n As Long Set lo = Worksheets("Port distances").ListObjects("PortDistances") Set lr = lo.ListRows.Add For n = 1 To lo.ListColumns.Count lr.Range(1, n).Value = "item " & n Next n