我正在尝试创建一个引用另一个表的公式列,我希望能够对新列进行排序,而不会影响值。我在尝试:
' dataTable is a ListObject
Dim statusCol As ListColumn
Dim statusRange as Range
Dim statusCell As Range
Dim statusIndex as Integer
Set statusCol = dataTable.ListColumns.Add(2)
dataTable.HeaderRowRange(2) = "Status"
Set statusRange = statusCol.DataBodyRange
statusIndex = 1
For Each statusCell in statusRange.Cells
statusCell.formula = "=IF(INDEX(MatchColumn," & statusIndex & "), ""X"", ""Y"")"
statusIndex = statusIndex + 1
Next statusCell
如果我理解正确的话,这个循环应该在每个单元格中添加一个不同的statusIndex值。但是当我在调试器中逐步执行它时,只要我设置第一个单元格,就会为每个单元格设置公式。因此,当我有25行数据时,我最终得到公式为
的每个单元格中的公式=IF(INDEX(MatchColumn, 25), "X", "Y")
而我希望第一行的数字为1,第二行的数字为2 ......
那么为什么Excel每次在循环中设置列中的每个单元格?我怎么能阻止它呢?