0

次のことを行うマクロを作成しようとしています。

  1. 列Aの値を取ります-行ごとの行(下から上へ)=最初の行
  2. 列Aに同じ値を持つ別の行があるかどうかを確認します
  3. はいの場合: 最初の一致が必要です
  4. 一致した行のC列に何かが書かれているかどうかをチェックします
  5. はいの場合: 最初の行を削除します

私は次のものを持っていますが、うまくいきません.「worksheetfunctionクラスのMatchプロパティを取得できません.

Option Explicit

Sub Testing()

Dim x               As Long
Dim y               As Long
Dim LastRow         As Long
Dim MatchedRow      As Long
Dim RowValue        As String

LastRow = Range("A999999").End(xlUp).Row

For x = LastRow To 1 Step -1

RowValue = Range("A" & x).Value

If Application.WorksheetFunction.CountIf(Range("A1:A" & x), Range("A" & x).Text) > 1 Then
    MatchedRow = Application.WorksheetFunction.Match(RowValue, Range("A1:A" & x), 0)
    If Range("C" & MatchedRow).Value <> "" Then
        Range("A" & x).EntireRow.Delete
    End If
End If

Next x

End Sub

誰かが助けてくれることを願っています。

4

2 に答える 2

3

RowValueが文字列として宣言されているため、エラーが発生しています。列 A に数値がある場合、MATCH関数はエラーを返します (数値がテキストとしてフォーマットされていない場合)。

に変更Dim RowValue As StringするDim RowValue As Variantと、すべてのデータ型で機能します

于 2013-11-08T22:49:19.147 に答える