2017-10-18 76 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