Excel if条件在表中的使用

Excel if条件在表中的使用,excel,vba,Excel,Vba,如果在表格中添加新行,如何在excel工作簿中添加新行?请帮帮我?我正在尝试这个代码。如果表2调整了大小(添加一行),则“新建图纸”消息框将显示“否则” Sub Message_box() ActiveSheet.ShowDataForm Dim myif As String myif = ActiveSheet.ListObjects("Table2").ResizeRange If myif = "true" Then Sheets(

如果在表格中添加新行,如何在excel工作簿中添加新行?请帮帮我?我正在尝试这个代码。如果表2调整了大小(添加一行),则“新建图纸”消息框将显示“否则”

Sub Message_box()

ActiveSheet.ShowDataForm

Dim myif As String

myif = ActiveSheet.ListObjects("Table2").ResizeRange

If myif = "true" Then

    Sheets("Sample Table").Select
    Cells.Select
    Selection.Copy
    Sheets("All Loans").Select
    Sheets.Add After:=ActiveSheet
    Cells.Select
    ActiveSheet.Paste
    Range("A1").Select
    
Else

    MsgBox "Please, add loan detail in Form?"
    

End If

End Sub

类似这样的内容与您正在尝试的内容类似,但这不是一个好方法(如果用户添加新行并删除现有行怎么办?)


使用宏添加行,同时添加图纸。或运行工作表。更改检查表大小的事件。如果你想要更具体的帮助,你需要付出更多的努力。我有一个record宏,它正在进行某种类型的调试,我想要一个使用If条件的代码,如果我的表中添加了一个新行,那么每次都应该打开一个新的工作表,如果没有,那么消息框“在表中输入数据”您希望如何触发所述
If
语句?请参阅我的上述问题。
。ResizeRange
在AFAIK中无效。您可以使用
.ListRows.Count
返回行数,但要使用它,我想您需要跟踪上一个值以与之进行比较。以及与

Sub Message_box()

    Dim lo As ListObject, r As Long
    
    Set lo = ActiveSheet.ListObjects("Table2")
    r = lo.ListRows.Count
    
    ActiveSheet.ShowDataForm
    
    If lo.ListRows.Count > r Then
        ThisWorkbook.Sheets("Sample Table").Copy _
           after:=ThisWorkbook.Sheets("All Loans")
    Else
        MsgBox "Please, add loan detail in Form?"
    End If

End Sub