我可能错过了一些简单的事情,但ListRows.Add让我感到悲伤。这里的功能:Excel VBA ListRows.Add Failed
Sub addEmployee(employeeName As String, tableToAddTo As ListObject)
Dim newRow As ListRow
Set newRow = tableToAddTo.ListRows.Add()
newRow.Range.Cells(1, 1).Value = employeeName
tableToAddTo.Sort.Apply
End Sub
在大多数情况下,这工作正常。但是,无论函数何时在我的工作表中的某个表上运行,调用ListRows.Add后的行都不会执行(至少这是调试器指示的内容),并且该行不会添加到表中。任何想法/想法?
更新:
这是我从帖子后学到的。如果我提供存根数据的Sub它工作正常。例如:
Sub driver()
Dim myTable As ListObject
Set myTable = getTableObject("myTableName")
Call addEmployee("myName", myTable)
End Sub
注意:通过工作表getTableObject循环,并返回具有匹配名称的的ListObject。
它似乎是一个处理代码被调用的上下文的问题。在失败的情况下,公式(函数调用)被放置在各种工作表的各个单元格中。该公式包含对其他单元格中的数据的引用。当其他单元格中的数据发生更改时,会调用该公式,然后调用上面给出的addEmployee Sub。这是失败的情况。
你的代码工作正常,所以它必须是ListObject。你能否提供更多关于这可能与其他ListObjects不同的细节? – 2010-07-02 18:53:18
宅男:看到我上面更新的帖子。 – Adam 2010-07-02 20:29:23