2015-06-23 3 views
-1

Сейчас у меня есть это копирование данных из листа 1 Колонка В.Изменить текст, если совпадение?

Я хочу его так, чтобы он не копирует его он просто ставит завершенным, если он говорит Завершена или не завершено, если он говорит, что не завершено. Сейчас он копирует дополнительную информацию, которую у меня есть рядом с Completed.

With Sheets("Worksheet 2") 
    .Range("B1").Formula = "=IF(ISERROR(VLOOKUP(A1,'WorkSheet 1'!A:B,2,0))," & """""" & ",VLOOKUP(A1,'Worksheet 1'!A:B,2,0))" 
    .Range("B1").Copy Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row) 
End With 
+0

Что вы хотите сказать, что выполнено или не выполнено? Как выглядит спреды? –

+0

Является ли текст в ячейке, которую вы копируете, всегда начинаться с «Completed»/«Not Completed» или они могут появляться в любом месте текста? – barrowc

ответ

0

Поэтому я думаю, что это сработает для вас, но дайте мне знать, если он не сделает то, что вы просите. На боковой ноте iferror(...,"error value") является хорошей заменой для if(iserror(...,"error value",...). Это избавит вас от необходимости дважды вводить тестовое условие.

With Sheets("Worksheet 2") 
    .Range("B1").Formula = "=IFERROR(IF(IFERROR(FIND(""Not Completed"",VLOOKUP(A1,'WorkSheet 1'!A:B,2,0)),0),""Not Completed"",IF(IFERROR(FIND(""Completed"",VLOOKUP(A1,'WorkSheet 1'!A:B,2,0)),""""),""Completed"","""")),"""")" 
    .Range("B1").Copy Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row) 
End With 
+0

Это удивительно, сэр! Все это работает, но, видимо, у него есть дополнительная информация в 4000+ строках, которые я не видел. Так или иначе, если он говорит «Завершено», то он покажет y, и если он не будет завершен или что-то еще есть, что он просто поместит n? –

+0

Да, вы можете это сделать. Структура этой формулы вложена таким образом, что сначала вы ищете «Не завершено», и если этого нет, вы затем проверяете «Завершено» (в противном случае оба будут истинны для этого оператора IF). Наконец, вы хотите, чтобы что-нибудь еще отображалось как «N». Следовательно, «N» должно проходить в двух точках и «Y» в одном. Вот формула, которая делает это: .Range («B1»). Формула = «= IFERROR (IF (IFERROR (FIND (« «Не завершено» », VLOOKUP (A1,« WorkSheet 1 »! A: B, 2,0)), 0), "" N "", IF (IFERROR (FIND ("" Completed "", VLOOKUP (A1, 'WorkSheet 1'! A: B, 2,0)), "" "") "" Y "", "" "")) "" N "")» – Guido

Смежные вопросы