我有一个由多个行和列组成的数据集,例如
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
我想编写代码,一次一列地循环遍历单元格,计算像这样的索引(a2-a1)/(a2 + a1)。我希望将结果保存到sheet2。
我已经使用过此代码,但我一直收到错误消息。它打破了我试图将结果保存到sheet2的地方。
我需要帮助来修复此代码:
Sub Combination()
Dim jCell As Range
Dim kCell As Range
Dim result As Double
Sheet2.Cells.Clear
For Each jCell In ActiveSheet.UsedRange
For Each kCell In ActiveSheet.UsedRange
result = (jCell.Value - kCell.Value) / (jCell.Value + kCell.Value)
Sheet2.Cell("result").Value = Sheet1.Cell("result").Value
Next kCell
Next jCell
End Sub
提前致谢
答案 0 :(得分:0)
有一些问题(我认为这更像是学习VBA而不是任何实际的东西 - 所以我会忽略非vba的方法来做到这一点。)
一个是我从未见过这样的语法:
Sheet2.Cell("result").Value = Sheet1.Cell("result").Value
另一个是您的数据集包含字符串类型数据,例如“a1”b1“ - 现在你为什么要用字符串进行数学运算?你是否想要将它们组合起来(连接它们)? - 否则如果用字符串进行任意数学运算,你就会得到无意义的数字。
第三个是您需要一种方法将输出写入每行的第二张纸。您可能希望使用计数器来执行此操作。这是一个有效的子例子 - 我不确定它是你想要做的还是它对你有帮助:
Sub Combination()
Dim jCell As Range
Dim kCell As Range
Dim result As String
Dim i As Integer
i = 1
Sheet2.Cells.Clear
For Each jCell In ActiveSheet.UsedRange
For Each kCell In ActiveSheet.UsedRange
result = jCell.Value & kCell.Value
Sheet2.Cells(i, 1).Value = result
i = i + 1
Next kCell
Next jCell
End Sub
祝你好运。