如何向Excel表格添加行并为指定列设置特定值?
解决Excel表格新增行并设置指定列值的问题
嘿,其实你离答案只差一步——ListRows.Add()方法会返回你刚创建的那一行的ListRow对象,你完全可以通过这个对象直接给指定列赋值,不需要额外的函数。
这里有两种简单可靠的实现方式:
方法1:通过ListColumns定位列(推荐,更健壮)
如果知道目标列的名称或者索引,直接用ListColumns来定位,这样就算表格列顺序调整,用名称的代码依然能正常工作:
Dim newRow As ListRow ' 添加新行并把返回的行对象存到变量里 Set newRow = ActiveSheet.ListObjects("tableName").ListRows.Add ' 方式A:通过列索引(第一列的索引是1)设置值 newRow.ListColumns(1).DataBodyRange(newRow.Index).Value = "foo" ' 方式B:如果知道第一列的名称(比如叫"ItemName"),用名称更直观 newRow.ListColumns("ItemName").DataBodyRange(newRow.Index).Value = "foo"
方法2:直接操作行的Range区域
ListRow对象的Range属性代表整行的单元格区域,你可以直接通过索引访问某一列:
Dim newRow As ListRow Set newRow = ActiveSheet.ListObjects("tableName").ListRows.Add ' 第一列对应Range(1),直接赋值 newRow.Range(1).Value = "foo"
简单说就是先把新增的行存到变量里,再通过变量操作列值,这样比单独去查找单元格要高效且不易出错~
内容的提问来源于stack exchange,提问作者user736893
相关产品推荐
相关产品推荐

