2017-04-06 15 views
0

この特定の列が存在する場合は削除する必要があります。EXCEL VBA - 列が存在する場合に削除します。

特定の列から列ヘッダーを検索しようとしています。

これはGetColumnLetterとLASTROWは私のユーザー定義関数であり、彼らが正しい値を返す、

If sColumnName = (WorksheetFunction.Match("RSD", Sheets("RS_Report").Rows(1), 0)) And sColumnName = True Then 

DDC= WorksheetFunction.Match("RSD", Sheets("RS_Report").Rows(1), 0) 

DFC= GetColumnLetter(DDC) 

Range(DFC& 1 & ":" & DFC& lastrow).Select 

Selection.Delete Shift:=xlUp 

私のコードです。列が存在するかどうかを確認する方法がわかりません。親切に私にこれを手伝ってください。考えを共有する。

答えて

1

のように行くことができます。

1)特定の文字列のヘッダー行の範囲を調べるforループ。
プロ:その簡単な コン:文字列が

Dim string as yourString 
Dim lColumn As Long 
lColumn = ws.UsedRange.Columns.Count 
yourString = whatever 
for x = 1 to lcolumn 
    if range(cells(1, 1), Cells(1, x)).Value = yourString 
    Columns(x).EntireColumn.Delete 
    End If 
next 

2のような

何か正確である必要がありますが)あなたはおよそここhttps://msdn.microsoft.com/en-us/library/office/ff839746.aspx

ここでされて学ぶことができるRange.Findメソッドを使用します参照として使用できる短い概略例:

Sub Header_Format() 
Dim rLastCell As Range 
Set rLastCell = UpdateSheet.Cells.Find(What:="*", After:=UpdateSheet.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _ 
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False) 
    With UpdateSheet.Range(Cells(4, 1), Cells(4, rLastCell.Column)) 
     .Copy MasterSheet.Cells(1, 1) 
     .Copy RemovalSheet.Cells(1, 1) 
    End With 
End Sub 

3)最後に、誰かがすでに話していたマッチ方法。もう一つのため

https://msdn.microsoft.com/en-us/library/office/ff835873.aspx

2

は、単にこれを実行するには、3つの方法がありますが、この

+1

ニース、;) –

+1

@ShaiRado、感謝します。あなたはかなり速く登っています! – user3598756

+1

@VBA_Begineer、なぜあなたはJaberwockyのソリューションを選んだのですか?ありがとうございました – user3598756

関連する問題