2016-04-19 3 views
0

Ich möchte Zelle Nummer wie A: 1 für jedes gefundene gefunden mit Regex und speichern Sie es auf Blatt neben dem aktuellen in der gleichen Excel-Datei. Ist es möglich, in Excel zu erreichen? Wie einige der Beispiele, die ich probierte, gab es eine Übereinstimmung mit "true/false".Wie erhalten Spalte Nummer für Regex-Abgleich mit VBA/Makro in Excel

Sub Sample() 
Dim ws As Worksheet 
Dim aCell As Range 

Set ws = ThisWorkbook.Sheets("Sheet1") 

With ws 
    Set aCell = .Columns(2).Find(What:="Custom ", LookIn:=xlValues, _ 
       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
       MatchCase:=False, SearchFormat:=False) 
    If Not aCell Is Nothing Then 
     aCell.Value = "Test" 
    Else 
     MsgBox "Not Found" 
    End If 
End With 
End Sub 

Dies ist die Probe, die ich versucht habe !!

+0

Seit Acell ein Bereich ist, können Sie aCell.Column verwenden die Spaltennummer – gizlmo

+0

@gizlmeier Vielen Dank für diese zu erhalten Ich werde versuchen, und wie wird es alle in neues Blatt bringen !! –

Antwort

1

Try This

Sub Sample() 
    Dim ws As Worksheet 
    Dim aCell As Range 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
     With ws 
      Set aCell = .Columns(2).Find(What:="Custom ", LookIn:=xlValues, _ 
         LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
         MatchCase:=False, SearchFormat:=False) 
      If Not aCell Is Nothing Then 
       Worksheets("Sheet2").Range("A" & Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1).Value = aCell.Address 
      Else 
       MsgBox "Not Found" 
      End If 
     End With 
End Sub 

wenn Sie wollen alle das Spiel versuchen, unter

Sub Sample() 
    Dim ws As Worksheet 
    Dim aCell As Range 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
    lastrow = Range("B" & Rows.Count).End(xlUp).Row 
     With ws 
      For i = 1 To lastrow 
       If InStr(Range("B" & i), "Custom ") > 0 Then 
        Worksheets("Sheet2").Range("A" & Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1).Value = Range("B" & i).Address 
       End If 
      Next i 
     End With 
End Sub 
+0

Dank Karthik .. Was ist "B", die Sie im Bereich verwendet haben .. Ich denke, seine Spalte Name? –

+0

@GovindMantri, Ja, Sie haben Recht –

+0

Wie können wir es für alle Spalten aktualisieren? –

Verwandte Themen