2016-07-13 96 views
0

我試圖在宏中使用VBA來搜索文本字符串並刪除列的內容。我之前在網站上發現了這一點,並希望將其更改爲搜索列並刪除文本「QA1」,同時保留列。我希望這是有道理的。使用VBA在Excel中搜索文本字符串

LastRow = Cells(Columns.Count, "D").End(xlUp).Row 

For i = LastRow To 1 Step -1 
    If Range("D" & i).Value = "D" Then 
     Range("D" & i).EntireColumn.Delete 
    End If 
Next i 
+0

您是否試過對示例代碼的任何修改?你認爲每條線都在做什麼? – nekomatic

回答

0

此代碼經過列在一個指定的行和如果發現

Dim LastColumn As Integer 
Dim RowNumber As Integer 
Dim i As Integer 

LastColumn = UsedRange.SpecialCells(xlCellTypeLastCell).Column 
RowNumber = 1 'Adjust to your needs 

For i = 1 To LastColumn Step 1 

     Cells(RowNumber, i).Value = Replace(Cells(RowNumber, i).Value, "QA1", "") 
Next i 
+0

是否可以將其寫入查看整個工作表並刪除QA1? –

+0

請參閱jcarroll的答案 – gizlmo

0

循環通過活動工作表中所使用的範圍中刪除「QA1」,並刪除所選擇的文本。

Sub RemoveText() 

    Dim c As Range 
    Dim removeStr As String 

    removeStr = InputBox("Please enter the text to remove") 

    For Each c In ActiveSheet.UsedRange 
     If c.Value = removeStr Then c.Delete 
    Next c 

End Sub 
+0

這有效,但由於我有很多行和列,Excel需要很長時間來執行。我打算保留它以備將來使用。謝謝。 –

1

如果一個單元格包含QA1,您想清除整列的內容嗎?

Sub Test() 

    Dim rCell As Range 

    With ThisWorkbook.Worksheets("Sheet1").Columns(4) 
     Set rCell = .Find("QA1", LookIn:=xlValues) 
     If Not rCell Is Nothing Then 
      .ClearContents 
     End If 
    End With 

End Sub 

如果你只想明確各自在列d的QA1實例:

Sub Test() 

    Dim rCell As Range 

    With ThisWorkbook.Worksheets("Sheet1").Columns(4) 
     Set rCell = .Find("QA1", LookIn:=xlValues) 
     If Not rCell Is Nothing Then 
      Do 
       rCell.ClearContents 
       Set rCell = .FindNext(rCell) 
      Loop While Not rCell Is Nothing 
     End If 
    End With 

End Sub 

是否可以寫在整個工作表的外觀和刪除QA1 究竟在哪兒發現?

上薄片的QA1所有實例:

Sub Test() 

    Dim rCell As Range 

    With ThisWorkbook.Worksheets("Sheet1").Cells 
     Set rCell = .Find("QA1", LookIn:=xlValues) 
     If Not rCell Is Nothing Then 
      Do 
       rCell.ClearContents 
       Set rCell = .FindNext(rCell) 
      Loop While Not rCell Is Nothing 
     End If 
    End With 

End Sub 

編輯:添加LookAt:=xlWholeFind參數,以便它不刪除包含QA1和其他的文本(例如QA11Some text QA1)細胞

+0

謝謝,這就是我一直在尋找的東西。我仍然在學習VBA和宏,所以非常感謝。現在來破譯你寫的東西。再次感謝。 –

+0

我建議檢查這些鏈接:https://msdn.microsoft.com/en-us/library/wc500chb.aspx,https://msdn.microsoft.com/en-us/library/office/ff839746.aspx如果是,歡迎標記爲已接受的答案。 –