我正在使用以下方法向活动工作表中的表添加新行:
ActiveSheet.ListObjects("MyDataTable1").ListRows.Add(AlwaysInsert:=True)
问题是它依赖于表名“MyDataTable1”。如果我将活动工作表更改为表名为“MyDataTable2”的工作表,我也必须更改代码。有没有办法自动在活动工作表中查找表,这样我就不需要每次在工作表之间切换时更改代码?
答案1
你可以做类似这样的伪代码
dim name as string
name = Screen.ActiveDatasheet.Name
dim dataTableName as string
Select(name)
case "Sheet1"
dataTableName "MyDataTable1"
end select
ActiveSheet.ListObjects(dataTableName).ListRows.Add(AlwaysInsert:=True)
或者你可以用下面的方法循环遍历所有控件(未经测试)
dim dataTableName as string
dim myControl As Control
For Each myControl In Me.Controls
If TypeName(myControl) = "DataTable" Then
dataTableName = myControl.Name
End If
Next myControl