簡體   English   中英

我需要幫助修復VBA宏

[英]I need help fixing vba macro

我有一個由許多行和列組成的數據集,例如

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

另一個是您的數據集由字符串類型數據組成,例如“ 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

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM