我通常会犹豫是否使用表格,但这次是由于许多与工作相关的原因,我必须使用表格。因此,现在我正在将范围代码转换为表修改代码,并且我遇到了很多问题,我每天都在解决这些问题。 但这一点让我很恼火。这是一段代码,用于查找表列的最后一个完整行,并将数据从我的用户表单文本框插入到下一行(该行为空以接收数据)。
Private Sub but_spl2addweld_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("PL2_steel")
Dim tbl As ListObject
Set tbl = ThisWorkbook.Sheets("PL2_steel").ListObjects("Tbl_spl2weldings")
Dim y As Long
Dim lr As Long
Ir = sh.ListObjects("Tbl_spl2weldings").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
With tbl
If Me.Combo_SPL2weldoptions.Value = "Option 1_ Base material-Filler material" Then
.DataBodyRange(lr + 1, 1).Value = "pl2.St." & Me.txt_SPL2code.Value
.DataBodyRange(lr + 1, 2).Value = Me.Txt_spl2weldid.Value
.DataBodyRange(lr + 1, 3).Value = Me.Combo_SPL2weldoptions.Value
End If
End With
End Sub
我尝试了许多不同的方法来找到第(1)列“Ir”的最后一个完整行,并将新数据放入下一行,该行是空的“Ir+1”,就像在范围系统中一样。但没有什么能如我所愿。例如,当前代码,无论第 1 列是满还是空,都将新数据始终放在同一行(即标题后的第二行)中。