我试图让一个宏工作,它添加一个新的行到一个表,插入值从另一个工作表。
到目前为止,我已经设法让宏插入第一行,但是随后的行会覆盖前一行。目前,我已经将'Line'变量放入其中,它会产生一些不同的行为,其中第一行插入3次,然后随后的行再向下插入几行。
摘录如下:
Sub UpdateItemIndex(ItemName As String)
Dim ItemIndexSheet As Worksheet
Dim ItemIndexTable As ListObject
Dim NewEntryRow As ListRow
Dim NewEntryRowIndex As Integer
Dim RangeName As String
Set ItemIndexSheet = Sheets("Item Index")
ItemIndexSheet.Select
Set ItemIndexTable = ItemIndexSheet.ListObjects(1)
'Remove any filters
ItemIndexTable.AutoFilter.ShowAllData
Set NewEntryRow = ItemIndexTable.ListRows.Add
NewEntryRowIndex = NewEntryRow.Index
'Line = Range("NextItemIndex").Value
Line = Worksheets("Resources").Cells(2, 5)
NewEntryRow.Range(Line, "A").Value = ItemName
RangeName = ItemName & "!" & "ItemTitle"
NewEntryRow.Range(Line, "B").Formula = "=" & ItemName & "!" & Range(RangeName).Address
RangeName = ItemName & "!" & "ItemStatus"
NewEntryRow.Range(Line, "C").Formula = "=" & ItemName & "!" & Range(RangeName).Address
End Sub
在“Line”变量之前,新的行输入命令为:
NewEntryRow.Range(1, "B").Formula = "=" & ItemName & "!" & Range(RangeName).Address
这是一个较大宏的一部分,单击该宏的按钮将生成一个新工作表,并使用新值更新表。
我是新的VBA,所以将不胜感激的任何迹象表明是什么问题!
1条答案
按热度按时间vjhs03f71#
由于您已经有了
NewEntryRow
-它表示新行-您肯定不需要它的索引。NewEntryRow
只有一行!这应该行得通:
当你"命名"标题和状态单元格时,你可以用名字来引用它们。你不需要地址。
这将导致许多红色符号-因为Excel希望公式在表中保持一致
如果你能接受
INDIRECT
公式,你就可以避免这种情况: