我需要帮助修复vbamacros

我有一个由许多行和列组成的数据集

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 

提前致谢

有一些错误的东西(我假设这是更多的学习VBA比任何实际 – 所以我会忽略非VBA的方式来做到这一点)。

一个是我从来没有见过这样的语法:

 Sheet2.Cell("result").Value = Sheet1.Cell("result").Value 

另一个是你的数据集由stringtypes数据组成,例如“a1”b1“ – 现在你为什么要用string进行math运算?你是否想要合并它们(连接它们)?否则你只会得到无意义的数字if你用string进行任意的math运算。

第三个是你需要一种方法来写出输出到每一行中的两个表。 你可能会想要使用一个计数器来做到这一点。 这是一个子工程的例子 – 我不知道这是你想做什么,或者它是否可以帮助你:

 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 

祝你好运。