1

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

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

提前致谢

4

1 回答 1

0

有一些问题是错误的(我假设这更多地是为了学习 VBA 而不是任何实际的东西——所以我将忽略非 vba 的方法来做到这一点)。

一是我从未见过这样的语法:

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

另一个是您的数据集由字符串类型数据组成,例如“a1”b1“-现在为什么要对字符串进行数学运算?您是否尝试将它们组合(连接它们)?-否则您将得到无意义的数字,如果您对字符串进行任意数学运算。

第三个是您需要一种将输出写入每行第二张表的方法。您可能希望使用计数器来执行此操作。这是一个有效的 sub 示例 - 我不确定它是否是您想要做的,或者它是否对您有帮助:

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

祝你好运。

于 2012-11-01T20:57:57.183 回答