用VBA迭代表中的所有行和列
我在工作表中有一个表,我想迭代并更改使用我设置的函数的值。 该函数只是调用多个Replace函数来更改string。
我的问题是如何迭代表中的值?
我能够用列使用下面的代码:
For Each cell In Sheets("RawData").ListObjects("RawTable").ListColumns("REQUESTNAME").DataBodyRange.Cells cell.Value = decodeEnt(cell.Value) Next
但是,如何修改该代码以使其遍历行呢? 我尝试使用ListRows和ListColumns的组合,但不知道去哪里去做事。 这是我不确定之前的地方:
Dim listObj As ListObject Set listObj = Sheets("RawData").ListObjects("RawTable") For Each tableRow In listObj.ListRows For Each tableCol In listObj.ListColumns ' Would using intersect work here? ' listObj.Cell.Value = decodeEnt(cell.Value) Next
任何帮助表示赞赏。
我认为你不能使用这样的变体迭代,你必须使用索引迭代。 像这样(未经testing):
Dim listObj As ListObject, r%, c% Set listObj = Sheets("RawData").ListObjects("RawTable") For c = 1 To listObj.ListColumns.Count For r = 1 To listObj.ListRows.Count listObj.DataBodyRange.Cells(r, c).Value = decodeEnt(listObj.DataBodyRange.Cells(r, c).Value) Next Next
Dim Cell as Range For Each Cell in listObj.DataBodyRange ...