0

私は以下のコードを試していて、正しく機能していました。どういうわけかラインが変更され、機能しなくなった

次のようなタグと重みのテーブルがあります。

Tag   | Weight
---------------
Sport |  1
Music |  1

そして、タグと重みを含むユーザーの別のテーブル

User  |  Tag   |  Weight

cell(j, "B") には、他のワークシートの cell(2,"C") と同様に、ユーザー名が含まれています

次のコードを使用しています。

Sub swipeleft()

LastRowUser = Worksheets(13).Range("B65536").End(xlUp).Row
LastRowInput = Worksheets(14).Range("F65536").End(xlUp).Row
LastRowUser = LastRowUser + 1

newcount = 1

For j = 2 To LastRowUser
    For k = 9 To LastRowInput
        If Worksheets(14).Cells(k, "F") = Worksheets(13).Cells(j, "C") And Worksheets(13).Cells(j, "B") = Worksheets(14).Cells(2, "C") Then
            Worksheets(13).Cells(j, "D") = Worksheets(13).Cells(j, "D") - Worksheets(14).Cells(k, "G")
        ElseIf Not Worksheets(13).Cells(j, "B") = Worksheets(14).Cells(2, "C") Then
            Worksheets(13).Cells(newcount + LastRowUser, "C") = Worksheets(14).Cells(k, "F")
            Worksheets(13).Cells(newcount + LastRowUser, "D") = Worksheets(14).Cells(k, "G") * (-1)
            Worksheets(13).Cells(newcount + LastRowUser, "B") = Worksheets(14).Cells(2, "C")
            newcount = newcount + 1
        End If
    Next k
Next j

End Sub

これは、データが存在しない場合に行を追加しますが、何らかの理由で最初の実行後、2 番目の else 条件が満たされていないにもかかわらず、指数関数的に多くの行を追加し続けますか?

以下のコメントから更新

ユーザー入力ページ (ワークシート 14) は次のとおりです。

ここに画像の説明を入力

これがユーザー データベース ページです (ワークシート 13)。

ここに画像の説明を入力

ユーザー データベース ページで、存在しない 2 つの行 (音楽、ダンス) を追加し、入力ページからユーザー データベース ページの現在の値にスポーツ タグの重み付け (-1) を追加したいと考えています。

4

1 に答える 1