2017-11-30 9 views
0

私は重複行を非表示にするには、次のコードを見つけました:は、表ヘッダで列を参照する代わりに手紙

For i = Last_Row To First_Row Step -1 
    If WorksheetFunction.CountIf(Range("F" & First_Row & ":F" & i), Range("F" & i).Value) > 1 Then Rows(i).Hidden = True 
Next I 

コードは素晴らしい作品が、私は交換したいので、私は表にそれを使用しています固定列「F」にはテーブルヘッダ参照があります。そうすれば、誰かが列を挿入してもそれは動作します。私は正しい構文を見つけるのに苦労しています。

私のテーブルと列は次のとおりです。

Range("PART_SELECTION_DATABASE[PART '#]") 

すべてのヘルプは高く評価されます。

+0

あなたは、これはExcelや何か他のものであるかどうかを確認することができ、 – Dragonthoughts

+0

は申し訳ありませんが、はい、これは働いていた美しいエクセル2013 – TheRabbi99

答えて

1

Find機能を使用して、ヘッダPART '#"を検索することができます。

見つかったら、FindRng.Columnを使用して列番号を抽出できます。

コード

Option Explicit 

Sub FindHeader() 

Dim FindRng As Range 
Dim HeadrStr As String 
Dim Col As Long 

HeadrStr = "PART '#" 

Set FindRng = Cells.Find(what:=HeadrStr) 
If Not FindRng Is Nothing Then . make sure Find was successful 
    Col = FindRng.Column ' get the column number 
Else ' Find failed to find the Header 
    MsgBox "unable to find " & HeadrStr, vbCritical 
    Exit Sub 
End If 

For I = Last_Row To First_Row Step -1 
    If WorksheetFunction.CountIf(Range(Cells(First_Row, Col), Cells(I, Col)), Cells(I, Col).Value) > 1 Then Rows(I).Hidden = True 
Next I 

End Sub 
+0

は、あるください。ありがとうございました! – TheRabbi99

+0

@ TheRabbi99あなたは大歓迎です:) –

+0

私は、列番号を決定する必要があると予想していました。私は以下を使用しています: Col =範囲( "PART_SELECTION_DATABASE [PART '#]")。列 これは私が正しく得ることができなかったcells()の使用でした。再度、感謝します! – TheRabbi99

関連する問題