希望这是有道理的。我创建了一个宏,该宏将从母版表中读取信息,根据分析物的名称创建工作表,然后在创建工作表后,它将把8个单元格的信息从母版表转移到新创建的表中分析物表。
在我的计算机上,当我使用跨步运行代码时,运行SetNewAnalyte = Table.ListRows.Add行时,将创建新行,并且表的6行已用无论在表的第一行上找到任何信息,那么当set语句的With部分运行时,该数据就会被覆盖。
在每台其他计算机上,当我使用跨步运行代码时,运行Set NewAnalyte = Table.ListRows.Add行时,将创建新行,并且表的6行已用无论在表的第一行上找到任何信息,那么当set语句的with部分运行时,所有数据都将被覆盖。例如,我的表中有3个条目,因为对第3个条目运行with语句,所以该行上的所有条目都将同时被覆盖。
在我的计算机上运行时,所有条目均与预期的不同。在所有其他计算机上,所有条目都类似于该表的最终条目,这是不应该发生的。 Excel文件存储在网络区域中,每个人都访问相同的文件。该文件不包含外部引用(仅Activeworkbook)。
希望有人能提供帮助,因为我不知道为什么会这样。
1)我试图确保excel版本和Windows版本与创建代码的版本相同(无效)
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
答案 0 :(得分:1)
尝试在设置公式时更加明确:
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