我對vba相當陌生,剛被卡住了。我有一個電子表格,其中包含從A1到BW50的信息。單元格AM7包含某些值=(讓說)「Mytext」。我想編寫一個代碼來查找值並清除包含此特定文本的列後面的所有列。我知道我可以「修復」列並清除它們,但那些列可能會改變,以及「Mytext」的位置,之後我希望一切都清除。我什麼也找不出來。請有任何想法嗎?清除包含某個值的單元格後的值的列中的所有內容,vba
謝謝
我對vba相當陌生,剛被卡住了。我有一個電子表格,其中包含從A1到BW50的信息。單元格AM7包含某些值=(讓說)「Mytext」。我想編寫一個代碼來查找值並清除包含此特定文本的列後面的所有列。我知道我可以「修復」列並清除它們,但那些列可能會改變,以及「Mytext」的位置,之後我希望一切都清除。我什麼也找不出來。請有任何想法嗎?清除包含某個值的單元格後的值的列中的所有內容,vba
謝謝
使用Find方法將可能是最快的:
Option Explicit
Sub Clear()
Dim rng As Range
Dim str As String
str = "text"
Set rng = ActiveSheet.Cells.Find(What:=str, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rng Is Nothing Then
Range(Columns(rng.Offset(0, 1).Column), Columns(rng.Offset(0, 1).Column).End(xlToRight)).Delete
Else
MsgBox "The value '" & str & "' was not found."
End If
End Sub
注:LookAt:=xlWhole
應,如果你正在尋找一個文本的任何部分,而不是更改爲LookAt:=xlPart
全細胞價值。
你可以試試這個:
Option Explicit
Sub ClearColumns()
Dim f As Range
Dim textToFind As String: textToFind = "Mytext"
With Worksheets("mySheet").Range("A1:BW50") '<--| change "mySheet" with your actual sheet name
Set f = .SpecialCells(XlCellType.xlCellTypeConstants, xlTextValues).Find(What:=textToFind, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False) '<--| look for text in given range cells withtext values
If Not f Is Nothing Then .Range(f.Offset(, 1), .Columns(.Columns.Count)).Resize(.Rows.Count).ClearContents '<--| if text found then clear given range columns at the right of the found text
End With
End Sub
遍歷細胞尋找「MYTEXT」,然後明確以下所有列。你有什麼特別的麻煩? –