EXCEL VBA: recorre las celdas de una columna, si no está vacío, imprime el valor de la celda en otra columna

Soy muy nuevo en Excel VBA y no me he familiarizado con todas las diferentes funciones y demás, y estoy bastante seguro de entender cómo usar las declaraciones IF dentro de los bucles FOR, por lo que no estoy muy seguro de cómo hacerlo. sobre la creación del código.

Esto es lo que me gustaría que sucediera:

A1 Food       B1 Selected?   D1 Selections
A2 Grapes     B2 Yes         D2 Grapes
A3 Tomato     B3             D3 Mango
A4 Mango      B4 Yes         D4 Spinach
A5 Spinach    B5 Yes     
A6 Carrots    B6
A7 Onion      B7 

Mi proceso de pensamiento:

1) Cree un bucle FOR en el rango de B2 a B7 para verificar el valor 'SÍ'
2) Si el valor es sí, el valor correspondiente en la celda adyacente en A debe imprimirse en D.
3) De lo contrario, debe continuar recorriendo las celdas.

Me imagino que VLOOKUP también está involucrado en algún lugar dentro de la declaración if, y las variables deben definirse para establecer el rango.

Agradecería cualquier ayuda.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta