首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Table.ListRows.Add在我的计算机上工作正常,但在我们的20台计算机化学实验室中没有一台其他计算机工作正常

Table.ListRows.Add在我的计算机上工作正常,但在我们的20台计算机化学实验室中没有一台其他计算机工作正常
EN

Stack Overflow用户
提问于 2019-08-01 05:24:28
回答 1查看 31关注 0票数 1

希望这是有意义的。我创建了一个宏,它将从主表中读取信息,根据分析物的名称创建工作表,然后在创建工作表后,它将8个信息单元格从主表转移到新创建的分析物表中。

在我的计算机上,当我使用step-into运行我的代码时,当运行Set NewAnalyte = Table.ListRows.Add行时,将创建一个新行,并且表的6行已经用表的第一行中找到的任何信息填充,然后随着set语句的with部分的运行,这些数据将被覆盖。

在每台其他计算机上,当我使用单步执行运行代码时,当运行行Set NewAnalyte = Table.ListRows.Add时,将创建一个新行,并且表的6行已经用表的第一行中找到的任何信息填充,然后所有数据都会随着set语句的with部分的运行而被覆盖。例如,我的表中有3个条目,当对第三个条目运行with语句时,该行上的所有条目都会同时被覆盖。

当在我的计算机上运行时,所有条目都不同,就像它们应该是的一样。在所有其他计算机上,所有条目都类似于表中的最终条目,这是不应该发生的。excel文件存储在网络区域中,每个人都访问相同的文件。该文件不包含外部引用(仅限Activeworkbook)。

希望有人能帮助我,因为我不明白为什么会发生这样的事情。

1)我已尝试确保excel版本和windows版本与创建代码的版本相同(不起作用)。

代码语言:javascript
复制
For Each Cell In AnalyteName
    If Cell.Interior.ColorIndex <> 35 Then
        WorkSheetName = Cell.Value
        For Each ws In wb.Worksheets
            If WorkSheetName = ws.Name Then
                Set Table = ws.ListObjects(WorkSheetName)
                Set NewAnalyte = Table.ListRows.Add
                    With NewAnalyte
                        .Range(1) = "='Standard List '!" + Cell.Offset(0, -1).Address
                        .Range(2) = "='Standard List '!" + Cell.Offset(0, 1).Address
                        .Range(3) = "='Standard List '!" + Cell.Offset(0, 2).Address
                        .Range(4) = "='Standard List '!" + Cell.Offset(0, 3).Address
                        .Range(5) = "='Standard List '!" + Cell.Offset(0, 4).Address
                        .Range(6) = "='Standard List '!" + Cell.Offset(0, 5).Address
                    End With
                Range(Cell.Offset(0, -2), Cell.Offset(0, 5)).Interior.ColorIndex = 35
            End If
        Next ws
    End If
Next Cell
EN

回答 1

Stack Overflow用户

发布于 2019-08-01 05:34:48

在设置公式时,请尽量明确一点:

代码语言:javascript
复制
With NewAnalyte.Range
   .Cells(1).Formula = "='Standard List '!" + Cell.Offset(0, -1).Address
   .Cells(2).Formula = "='Standard List '!" + Cell.Offset(0, 1).Address
   .Cells(3).Formula = = "='Standard List '!" + Cell.Offset(0, 2).Address
   'etc      
End With
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57299043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档