2015-07-20 3 views
0

Я получил следующие данные в своей таблице, и мои требования - следить за словом Plan/Actual Input DOC Qty, Actual Daily Mortality, , который получил много случаев, и я собираюсь хранить формулу в каждой ячейке их строки.

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 Это говорит о синтаксической ошибке 'прогнозаQty = Критерии1: = Массив (« Плановый/фактический вход DOC Qty »,« Фактическая ежедневная смертность »,« Прогноз Qty »)' – 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 содержит определенное ключевое слово, и вы можете поместить вашу формулу на если еще блоке. Обратите внимание: INSTR - это функция, в которой вы можете искать подстроку из строки.

+0

Большое спасибо Джону ... это сработало! ~ – LBMG