【发布时间】:2020-05-11 09:59:10
【问题描述】:
我有一个非常简单的 VBA,它可以在 Excel 表格中添加一行 - 前四列包含 VBA 输入的数据,最后四列自动从上面的行复制公式,这通常在添加行时发生到一张桌子。我不认为我的代码有什么问题,但无论如何都可以参考:
Sub addAccountEmail()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("trade")
Set ws2 = ThisWorkbook.Sheets("Database")
Dim tbl As ListObject
Set tbl = ws2.ListObjects("accountActivity")
With tbl.ListRows.Add
.Range(1) = Application.UserName
.Range(2) = Date
.Range(3) = Time
.Range(4) = "Email"
End With
End Sub
我遇到的问题是,在运行 VBA 时,有时会添加数据,但就像普通的 Excel 范围一样,而不是添加表格行。这些公式也通过了,但显示为#VALUE!,好像有人向上拖动了表格的范围以排除该行。下面的截图来演示:
我确定这不是我的代码,因为我之前多次使用相同的方法没有问题。这是一个保存在 SharePoint 中的文件,有多个用户同时使用它 - 这可能是问题所在吗?
编辑:公式依次为=IF(WEEKNUM([@Date])=WEEKNUM(TODAY()),1,"")、=IF(WEEKNUM([@Date])=WEEKNUM(TODAY())-1,1,"")、=IF(EOMONTH([@Date],0)=EOMONTH(TODAY(),0),1,"")、=IF(AND([@Date]>=spec!$D$5,[@Date]<=spec!$D$6),1,"")。我相信当公式在表格之外时返回错误的原因是因为它引用表格列,即[@Date]。
【问题讨论】:
-
公式是什么?
-
我已将公式添加到问题中。