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

Excel Table.ListRows.Add在我的计算机上正常工作,但在我们的20计算机化学实验室中,没有一台计算机正常工作,excel,vba,Excel,Vba,希望这是有道理的。我创建了一个宏,它将从主工作表读取信息,根据分析物的名称创建工作表,然后在创建工作表后,它将从主工作表将8个单元的信息传输到新创建的分析物表上的表中 在我的计算机上,当我使用单步执行我的代码时,当行Set NewAnalyte=Table.ListRows.Add运行时,会创建一个新行,并且表的6行中已经填充了在表的第一行中找到的任何信息,然后在Set语句的with部分运行时,该数据会被覆盖 在其他每台计算机上,当我使用单步执行代码时,当行Set NewAnalyte=Tabl

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

在我的计算机上,当我使用单步执行我的代码时,当行Set NewAnalyte=Table.ListRows.Add运行时,会创建一个新行,并且表的6行中已经填充了在表的第一行中找到的任何信息,然后在Set语句的with部分运行时,该数据会被覆盖

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

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

希望有人能帮助我,因为我不明白为什么会发生这种情况

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

AnalyteName中每个单元格的

如果Cell.Interior.ColorIndex 35,则
工作表名称=单元格.Value
对于wb.工作表中的每个ws
如果WorkSheetName=ws.Name,则
Set Table=ws.ListObjects(工作表名称)
Set NewAnalyte=Table.ListRows.Add
新分析物
.Range(1)=“标准列表”!“+单元格偏移量(0,-1).地址
.Range(2)=“标准列表”!“+单元格偏移量(0,1).地址
.Range(3)=“标准列表”!“+单元格偏移量(0,2).地址
.Range(4)=“标准列表”!“+单元格偏移量(0,3).地址
.Range(5)=“标准列表”!“+单元格偏移量(0,4).地址
.Range(6)=“标准列表”!“+单元格偏移量(0,5).地址
以
范围(单元格偏移量(0,-2),单元格偏移量(0,5)).Interior.ColorIndex=35
如果结束
下一个ws
如果结束
下一个细胞

在设置公式时,请尝试更明确一点:

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

您的工作表名称“标准列表”是否真的在末尾有空格?您在其他计算机上看到的是默认值-自动更改表列中的所有公式,但它可以按@BrakNicku所述禁用,这正是问题所在,您的解决方案非常有效。对于这个答案,还有什么可以给你道具的吗?我是StackOverflow的新手,我刚刚链接了解决方案。你可以通过向上投票的方式为链接答案的作者提供道具,但要做到这一点,我认为你首先需要有15个信誉点。我将在以后设置公式时尽量更加明确,但在这种情况下,它无论如何都不会改变。不过,当我学习用VBA编写代码时,这仍然是一个很好的建议。上面BrakNicku的评论修复了我在这个案例中遇到的问题
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