2015-07-20 38 views
0

我在我的表格中獲得了以下數據,我的要求是照顧Plan/Actual Input DOC QtyActual Daily MortalityForecast Qty這個詞,它出現了很多事件,我要去存儲他們的行的每個單元格中的公式。

My Table

我得到了下面的代碼,我不能肯定這是否是因爲我得到了很多關於它的錯誤雖然是正確的。如果我錯了,請看看並糾正我。任何幫助將不勝感激。VBA在選定行的單元格中找到特定的關鍵字並存儲公式

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim forecastQty As String 
Dim Rng As Range 


With Rows("1:1") 
forecastQty = Criteria1:=Array("Plan/Actual Input DOC Qty","Actual Daily Mortality","Forecast Qty") 
    Set Rng = .Find(what:=forecastQty, _ 
    after:=.Cells(.Cells.Count), _ 
    LookIn:=xlFormulas, _ 
    lookat:=xlWhole, _ 
    SearchOrder:=xlByColumn, _ 
    SearchDirection:=xlNext, MatchCase:=False) 

If Not Rng Is Nothing Then 
    ActiveCell.Address.Select 
Else 
MsgBox "Nothing found" 
End If 

End With 
End Sub 
+0

請分享您獲得的錯誤以及您獲取它們的行,以便我們能夠更好地爲您提供幫助。 – Luuklag

+0

@Luuklag它說語法錯誤'forecastQty = Criteria1:= Array(「計劃/實際輸入DOC數量」,「實際每日死亡率」,「預測數量」) – LBMG

回答

0

您可以嘗試另一種搜索特定關鍵字的方式。

Dim i As Integer 
Dim x As String, y As String, z As String, PO As String 


i = 2 
Do Until Sheets("your sheet name").Cells(i, 1) = "" 

x = "Plan" 
y = "Actual" 
z = "Forecast" 

PO = Sheets("your sheet name").Cells(i, 4) 

    If InStr(1, PO, x, 1) > 0 Then 

     'Do what you want 

    ElseIf InStr(1, PO, y, 1) > 0 Then 

     'Do what you want 

    ElseIf InStr(1, PO, z, 1) > 0 Then 

    'Do what you want 

    End If 

i = i + 1 
Loop 

這將遍歷數據並搜索特定關鍵字。在你的情況下,

Plan/Actual Input = Plan 
Actual Daily Mortality = Actual 
Forecast Qty = Forecast 

代碼將搜索列D的某行是否包含特定關鍵字,並且您可以將公式放在if else塊上。請注意,INSTR是一個函數,您可以從字符串中搜索子字符串。

+0

非常感謝John ...它的工作!〜 – LBMG

相關問題