アプリ版:「スタンプのみでお礼する」機能のリリースについて

Sub sakujyo()
Dim i, ii As Long
For i = 1 To Range("a65336").End(xlUp).Row
For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1
If Cells(i, 4).Value = Cells(ii, 4).Value _
And Cells(i, 13).Value = Cells(ii, 13).Value Then
Delete Shift:=xlUp
End If
Next ii
Next i
End Sub

マクロに関しては、素人でございます。
こちらのマクロを作ってみたのですがうまくいきません。
4列目と13列目の列が重複したときのみ重複した行をすべて削除させたいと思っております。どうぞお教えください。

A 回答 (5件)

[回答番号:No.2] の DOUGLAS_ です。


>結果として1と3と6、4と5行目を削除し2行目だけ残すというものを作りたい
 失礼いたしました。意味が分かりました。


Delete Shift:=xlUp
End If
Next ii



Dim iii As Byte

iii = 1
Rows(ii).Delete Shift:=xlUp
End If
Next ii
If iii = 1 Then Rows(i).Delete Shift:=xlUp
iii = 0

ですね。
    • good
    • 0
この回答へのお礼

マクロが完璧に動きました。
本当に感謝いたします。ありがとうございました。また機会がございましたら宜しくお願いいたします。

お礼日時:2009/03/23 00:18

[回答番号:No.4] の DOUGLAS_ です。



 たびたび失礼いたしました。
 
[回答番号:No.4] の
Rows(i).Delete Shift:=xlUp
の部分で「i」のインデックス番号が無くなってしまいますので、
i = i - 1
の処理が必要でした。

Sub sakujyo()
 Dim i, ii As Long
 Dim iii As Byte
 For i = 1 To Range("a65336").End(xlUp).Row
  For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1
   If Cells(i, 4).Value = Cells(ii, 4).Value _
    And Cells(i, 13).Value = Cells(ii, 13).Value Then
    iii = 1
    Rows(ii).Delete Shift:=xlUp
   End If
  Next ii
  If iii = 1 Then
   Rows(i).Delete Shift:=xlUp
   i = i - 1
  End If
  iii = 0
 Next i
End Sub
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
只今試したところ正常に動きました。
ご丁寧な対応ありがとうございます。
また、機会がございましたら宜しくお願いいたします。

お礼日時:2009/03/23 16:25

取りあえず下記でどうでしょうか。



Sub tes1()
  Dim i As Long, ii As Long
  For i = 1 To Range("a65336").End(xlUp).Row
    For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1
      If Cells(i, 4).Value = Cells(ii, 4).Value _
        And Cells(i, 13).Value = Cells(ii, 13).Value Then
        Cells(ii, 4).Delete Shift:=xlUp
        Cells(ii, 13).Delete Shift:=xlUp
      End If
    Next ii
  Next i
End Sub

この回答への補足

ありがとうございます。
大変勉強になりました。

補足日時:2009/03/23 00:13
    • good
    • 0

>結果として1と3と6、4と5行目を削除し2行目だけ残すというものを作りたい


 何か、矛盾があるような気もいたしますが。

Delete Shift:=xlUp
のトコロを
Rows(ii).Delete Shift:=xlUp
でいかがでしょうか?
    • good
    • 0

どのようなデータの羅列で、削除したい条件と削除されると困る条件などを提示された方がいいかも。

この回答への補足

   A  B  C  E
1 1/26 a1234 jkl; 5000
2 1/27 a4567 abcd 4000
3 1/28 a1234 ghij 5000
4 1/30 b4567 yuio 6600
5 2/1 b4567 fdsa 6600
6 2/2 a1234 nmvc 5000

アドバイスありがとうございます。
B列とE列が同じ値のときに削除がしたいです。
結果として1と3と6、4と5行目を削除し2行目だけ残すというものを作りたいです。どうぞ宜しくお願い致します。

補足日時:2009/03/22 23:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!