2016-12-03 168 views
0

宏正在搜索具有特定文本的單元格的列,並將另一個文本寫入所有下一行中的另一個單元格,直到找到下一個具有特定文本且具有相同內容的單元格。 vba excel宏(單元格包含特定文本)

A1 contains text "(1)" then write text "a" in C2,C3,C4.... until it finds 
A10 contains text "(16)" then write text "b" in C11,C12,..... until it finds 
A24 contains text "(19)" th[enter image description here][1]en write "c" in C25,C26 ... 

細胞之間包含文本的所有其他細胞包含數字

enter image description here

+2

對不起,我不能確定什麼問題是? – StevenWalker

+1

歡迎來到SO。在尋求幫助之前,您需要展示一些編程工作來解決問題。 –

回答

0

,你可以去這樣的:

Option Explicit 

Sub main() 
    Dim iArea As Long 
    Dim rng As Range 
    Dim texts As Variant 

    texts = Array("a", "b", "c") '<--| array containing your "texts", be sure therer are at least as much elements as cells with "('number')" in column A 

    With Worksheets("mySheet") '<--| change "mySheet" to your actual worksheet with data name 
     With .Range("A1", .Cells(.Rows.count, "A").End(xlUp)) '<--| reference its column "A" cells from row 1 down to last not empty one 
      With .Resize(.Rows.count + 1) 
       .Cells(.Rows.count).Value = "number : (0)" '<--| add "dummy" "specific" text. it'll be removed by the end of the macro 
       .AutoFilter field:=1, Criteria1:="=*(*)*" '<--| filter it with "*(*)*" string 
       If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then '<--| if any filtered cell found 
        Set rng = .SpecialCells(xlCellTypeVisible) '<--| set the range corresponding filtered cells 
        .Parent.AutoFilterMode = False '<--| remove autofilter and show all rows back 
        With rng '<--| reference filtered cells 
         For iArea = 1 To .Areas.count - 1 '<--| loop through them (each filtered cell is an 'Area') excluding last ("dummy") one 
          .Parent.Range(.Areas(iArea).Cells(2, 3), .Areas(iArea + 1).Cells(1, 3).Offset(-1)).Value = texts(iArea - 1) 'fill column "C" (third from referenced cell in column A) with 'texts' element corresponding to current area 
         Next iArea 
        End With 
       End If 
       .Cells(.Rows.count).ClearContents '<--| clear add "dummy" "specific" text 
      End With 
     End With 
    End With 
End Sub 
相關問題