• ベストアンサー

マクロ 重複削除の選択範囲を全てにしたい

watabe007の回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>S7731セルまでではなく、全てにしたいですが S列の最終行まで行います。 ActiveSheet.Range("$A$1", Cells(Rows.Count, "S").End(xlUp)).RemoveDuplicates Columns:=11, Header:=xlYes

nkmyr
質問者

補足

ありがとうございます。 記述してみましたところ、K列を選択しただけで、重複削除は実施していませんでした。 違うのでしょうか?

関連するQ&A

  • マクロBVAに関する質問です

    Sub Macro1() ' ' Macro1 Macro ' ' Range("テーブル1[番号]").Select ActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYes End Sub といった、マクロを作ったのですがActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYesのところでデバックになってしまいます。 なぜデバックとなるのか? また解決策を教えて下さい。宜しくお願い致します。(マクロ超初心者)

  • EXCEL VBAの重複行削除について

    EXCEL2010を使用しています。 添付画像の「重複行削除 前」の表を、RemoveDuplicatesで下の様にコードを組んで A列で重複する行を見て重複する行を削除しています。 Public Sub 重複行削除()  With WorkSheets(1)   .Range(.Cells(1, 1), .Cells(8, 3)).RemoveDuplicates _      Columns:=1, Header:=xlYes  End With End Sub すると、日付の新しいデータが削除され、古いデータが残ってしまいます。 (添付画像の「重複行削除 後」) ReniveDuplicates Columns:=Array(1,3) とした場合は、すべてのデータが残ってしまいます。 添付画像の「欲しいデータ」の表の様に、 日付の新しいものを残すように重複行削除は出来ないでしょうか? 詳しい方、どうか教えてください。 よろしくお願いします。

  • エクセルVBAで表の重複行の削除

    仮にB2:AA32の範囲の表の全列のデータが重複している行を削除する場合は以下のようなコードになると思います。 質問は、列の指定の=Array(1,~, 26)の部分をもっと簡略化する方法ことはできないかです。 ご教示ください。 ActiveSheet.Range("$B$2:$AA$32").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, _ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26), Header:=xlYes

  • 重複した値を一つ残す VBA

    重複した値を一つだけ残していきたいです。 たとえば リンゴ リンゴ リンゴ とあれば2つリンゴが消えて欲しいです 今のところ重複した値を消す方法しかわからず詰まっています。 なにとぞよろしくおねがいします  Option Explicit Sub test() Dim i As Double Dim x As Double Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Range("T3", Range("T" & Rows.Count).End(xlUp)).Sort Key1:=Range("T3"), Order1:=xlAscending, Header:=xlYes For i = 3 To Cells(Rows.Count, 20).End(xlUp).Row Range(Cells(i, "T"), Cells(i, "T")).RemoveDuplicates Columns:=Array(1), Header:=xlYes Application.Calculate Next End Sub

  • 増減するデータの集計について

    Excel2013使用です。 「受注書」というシートのデータを集計し、「集計表」というシートに 書き出したいです。 【シート「受注書」】    C      D      E       F     G   1 商品名   色     数量    単価   備考 2 データ・・・・・・・・・・・・・・・ 【シート「集計表」】    A      B      C      D     E 6 商品名   色     数量    単価   備考 7 シート「受注書」のC~Fのデータをコピーし、 シート「集計表」のA~Dに貼り付け後、商品名を基準に重複を削除し、 各商品の合計数量をSUMIF関数で集計するようにしました。 テストデータでは上手く行ったのですが、「受注書」のデータは都度 増減があるため、データを増やして再度テストしたところ、増やした分の データが「集計表」の下部に残ってしまいます。 こんな感じ↓ 【シート「集計表」】    A      B      C      D     E 6 商品名   色     数量    単価   備考 7 *****    **     ***     ***    ** 8 ****     **     ***  ***    ** 12****     **     ***     ***    ** ←増やしたデータ コードは以下の通りです Sheets("受注書").Select Range("C2:G2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("集計表").Select Range("A7").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Range("$A$6:$E$25").RemoveDuplicates Columns:=1, Header:=xlYes Range("C7").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("C7").Select ActiveCell.FormulaR1C1 = "=SUMIF(受注書!C3:C5,集計表!RC1,受注書!C5)" Range("C7").Select Selection.AutoFill Destination:=Range("C7:C9"), Type:=xlFillValues Range("C7:C9").Select Range("A2").Select End Sub 試しに ActiveSheet.Range("$A$6:$E$25").RemoveDuplicates Columns:=1, Header:=xlYes の部分を ActiveSheet.Range("$A:$E").RemoveDuplicates Columns:=1, Header:=xlYes に変えてみたところ、下部の重複データは消えたのですが、集計結果が何故か A7以降にではなくA4以降に表示されてしまい、罫線も消えてしまいました。 更に、C列の数量に不要な0が表示されてしまいます。 こんな感じ↓   A      B      C      D     E 4 商品名   色     数量    単価   備考 5 *****    **     ***     ***    ** 6 ****     **     ***  ***    ** 7                0 8                 0 どこを直したら良いでしょうか?

  • 重複行の枠線内内容分のみを削除

    Excel2013ですがフォームがあり重複する行をExcel枠線を残しVBAコードでセル項目、数値のみ削除したいのですが A列 B列 C列 あ  1  a あ  1  a あ  2  a い  1  a い  2  c い  2  c A列 B列 C列 あ  1  a あ  2  a い  1  a い  2  c のようにABC列同一文字は1行にしExcel枠線を残すVBAコード、関数の解る方ご教授願います。 ActiveSheet.Range("$A$1:$C$6").RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo 上記の以前回答頂いたVBAコードで内容は問題なかったのですが枠線まで削除されるので改めて枠線を作っていますどうかよろしくお願いします。

  • エクセル マクロ(VBA) 空白&重複の削除

    データの空白と重複を削除(上詰め)し、10行目から並べる というマクロを書きたいです。 下記のマクロを実行すると、添付の緑色のセルのように、 なぜか空白の部分ができてしまいます。 緑色の空白を詰めるには、どのように書けばよいでしょうか。 さらに、Sheet2のデータを元にマクロを実行した時に、そのデータは 変更せずに、結果をSheet3に表示したいのですが、その方法を教えて下さい。 (現在のマクロだと、実行元のデータがある同じシート内で整列されます。) - Sub macro1() Dim i As Long On Error Resume Next For i = 1 To 10 With Columns(i) .SpecialCells(xlCellTypeBlanks).Delete shift:=xlShiftUp .RemoveDuplicates Columns:=1, Header:=xlNo End With Next i Range("1:9").Insert shift:=xlShiftDown End Sub -

  • 昇順

    失礼します。昇順がうまくいかず困っています。 本来T3から下を昇順で並び変えたのち重複した値を削除したいのですがうまくいきません もしよろしければダメな点を教えていただけないでしょうか?よろしくおねがいします。 Option Explicit Sub test() Dim i As Double Dim x As Double For i = 3 To Cells(Rows.Count, 20).End(xlUp).Row Range(Cells(i, "T"), Cells(i, "T")).Sort Key1:=Range("T2"), Order1:=xlAscending, Header:=xlYes Range(Cells(i, "T"), Cells(i, "T")).RemoveDuplicates Columns:=Array(1), Header:=xlYes Next End Sub

  • このマクロ、何をしているのかわかりますか?

    ' Rows("1:1").Select Selection.Insert Shift:=xlDown Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= _ False Range("A1:A37").Select Selection.Copy Range("S1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Columns("A:A").Select Application.CutCopyMode = False Selection.ClearContents Range("A1").Select End Sub わかる方 お願いいたします!

  • Excelのイベントマクロ

    Private Sub Worksheet_Activate()に関する質問です。 ワークシート1と2があるとします。 ワークシート1は普通のデータが記されており、それのソートを実行するマクロをMacro1、そのデータから重複したものを外してソートするマクロをMacro2とし、Macro1から呼び出してます。 今、シート2を開いたときは必ず、シート1でMacro1を実行するようにしたいのですが、以下のように記述すると、無限ループになってしまいうまくいきません。 どなたか、方法をお教えください。 Sheet2に記載したイベントマクロ Private Sub Worksheet_Activate() Sheets("Sheet1").Select Macro1 Sheets("Sheet2").Select End Sub 標準モジュールに記載したマクロ Sub Macro1() Dim team As Integer ActiveSheet.Unprotect ("pass") Range("A3:c18").Select Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("A3") ,Order2:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal team = Range("b1").Value ActiveSheet.PageSetup.PrintArea = "$A$3:$c$" + CStr(team + 2) Macro2 Range("A1").Select ActiveSheet.Protect ("pass") End Sub Sub Macro2() Range("i3:j18").ClearContents Range("i3").Select Selection.Consolidate Sources:="R3C6:R18C7", Function:=xlMax, TopRow:=False,LeftColumn:=True, CreateLinks:=False Range("i3:k18").Select Selection.Sort Key1:=Range("k3"), Order1:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal Range("j3:j18").Select Selection.NumberFormatLocal = "0_);[赤](0)" End Sub