excel - 写相同公式的不同方式给出不同的结果?
问题描述
我回到了这个我不完全理解的公式(但比上次更好;)如何在复杂的公式中添加美元符号?) 并对其进行编辑以在其他地方使用它...
我的问题很简单,我采用完全相同的公式,但取决于我在“with”中的写法,它不会给出相同的结果:(
我的目标是在单元格中插入公式,制作一个很好的大“with”,同时格式化单元格(颜色等)
我有这两种写法:
第一个给了我想要的结果:=AVERAGE('C Labour Rate'!c6:g6)
第二个给出:=AVERAGE('C Labour Rate'!E9:I9)
With Worksheets(YearToFill)
.Cells(PosStartLine + (TPINb * 3) - 3, PosStartColumn + (ActiveColumn - 1)).Formula = "=AVERAGE('" & LabourSheet & "'!" & .Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes) _
.Address(False, False) & ":" & .Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes + NbRepairCodes - 1).Address(False, False) & ")"
End With
(这个给=AVERAGE('C Labour Rate'!C6:G6)
)
With Worksheets(YearToFill).Cells(PosStartLine + (TPINb * 3) - 3, PosStartColumn + (ActiveColumn - 1)) 'Formula for the average occurences of the TPI in Europe
.Formula = "=AVERAGE('" & LabourSheet & "'!" & .Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes) _
.Address(False, False) & ":" & .Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes + NbRepairCodes - 1).Address(False, False) & ")"
End With
(这第二个给出=AVERAGE('C Labour Rate'!E9:I9)
)
里面发生了什么?我什至尝试了一个接一个地写下的2个公式,并通过逐步模式运行代码来检查结果,它显然没有相同的结果......
我想这是造成问题的“.cells”,但为什么呢?根据活动单元格,没有“偏移”或其他功能......
我不明白,我没有在互联网上找到帮助,主要是因为我不知道如何搜索:'(
预先感谢您的帮助!:)
解决方案
是的,因为您.Cells
在公式中使用了,所以将其附加到 with 上:
第一的:
Worksheets(YearToFill).Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes + NbRepairCodes - 1).Address(False, False)
第二:
Worksheets(YearToFill).Cells(PosStartLine + (TPINb * 3) - 3, PosStartColumn + (ActiveColumn - 1)).Cells(PosStartLine + (TPINb * 3) - 1, PosStartColumn + (ActiveColumn - 1) * NbRepairCodes + NbRepairCodes - 1).Address(False, False)
单元格是相对于父级的:
Worksheets().Cells()
是相对于A1
但
Worksheets().Range("B10:B20").Cells(1,1).Address(0,0)
将返回B10
不A1
因此偏移地址。
推荐阅读
- python - 变量外的函数更改自发
- r - 如何从字符串中提取包含在单词组/单词列表中的单词?
- android - 从 Fragment 到 Activity 的 Widget 数据
- javascript - 如何按类别排列数组?
- graphics - 如果可以使用网格属性,为什么要使用着色器?
- python-3.x - 有没有办法使用 pygad 模块执行多目标分析?
- android - Visual Studio 无法创建新的 Android 设备
- java - 如何在 Android 应用程序中使用 HttpURLConnection?
- rust - 如何提取给定字符之前的字符串前缀?
- java - 使用带有字符串的 findViewById 查找对象始终返回 null