2017-10-18 49 views
-1

我想創建一個將通過列的宏讓我們說列A和該列中有一行包含文本「該cpu利用率是xx%「,如果宏可以去掉」XX%「並將該值放入同一工作簿中任何位置的新工作表中,則從該行開始。宏腳本來搜索行中不斷更改的列中的特定文本

請注意,行不固定的文本保持不變,但行會改變和列保持相同

Sub Test() 
Dim ws As Worksheet 
Dim rFind As Range 
Set ws = ThisWorkbook.Worksheets("sheet2") 
Set rFind = Range("A:A").Find("*TOTAL*", LookIn:=xlValues) 
Worksheets("sheet1").Range("B11") = rFind 
End Sub 
+3

請分享你的努力! SO不是免費的編碼服務。 –

回答

1

這是一個非常簡單的一個,所以我只是做了它真正的快。記得像吉爾斯說過的,在發帖之前一定要表現出一些努力,否則你的問題可能會被關閉:更多信息見https://stackoverflow.com/help/mcve

Sub FindPhrase() 
Dim i As Long, searchCol As Long, dCell As Range, ws As Worksheet 

Set ws = ActiveSheet 

'column A 
searchCol = 1 

'output cell 
Set dCell = ws.Range("B1") 

'search through cells in specified column 
For i = 1 To ws.Cells(ws.Rows.Count, searchCol).End(xlUp).Row 
    If InStr(ws.Cells(i, searchCol), "The cpu utilization is ") > 0 And InStr(ws.Cells(i, searchCol), "%") > 0 Then 
     dCell.Value = CDbl(Replace(Mid(ws.Cells(i, searchCol), InStr(ws.Cells(i, searchCol), "%") - 2, 2), "%", "")) 
     Exit For 
    End If 
Next i 

End Sub 
+0

感謝J.Fox我不是代碼的專家,但我想下面的子測試() 昏暗的WS作爲工作表 昏暗RFIND作爲範圍 集WS = ThisWorkbook.Worksheets( 「Sheet2的」) 設置RFIND =範圍(「A :「A」)。Find(「* TOTAL *」,LookIn:= xlValues) 工作表(「sheet1」)。範圍(「B11」)= rFind End Sub – Mir81

+0

但它做的工作,但我沒有來提取「XX%」,另一個問題是,它只有一次選擇了該值並粘貼到單元格中,但如果在刪除它給出的值後再次運行宏 – Mir81