/ / Excel VBA - Intervallo di ricerca - Se la cella contiene testo, quindi copia cella - Incolla offset 2,1 - excel, excel-vba, vba

Excel VBA - Intervallo di ricerca - Se la cella contiene testo quindi Copia cella - Incolla offset 2,1 - excel, excel-vba, vba

Sto tentando di semplificare un foglio Excel con cui lavoro settimanalmente.

Sto cercando di creare una macro VBA che farebbe quanto segue:

  1. Cerca la colonna C per qualsiasi cella che contiene testo, se vuoto ignora
  2. Se il testo viene trovato in una cella, copia quella cella, incolla l'offset contenuto (2,1)

Qualsiasi aiuto chiunque possa darmi, lo apprezzerei molto. Ho cercato altre macro e ho tentato di modificarle per il mio uso senza alcun risultato.

    **Example Before Macro**
A       B       C       D       E
1                 Hi
2                 Test
3
4                 Done
5
6

**Example After Macro Has Been Run**
A       B       C       D       E
1                 Hi
2                 Test
3                         Hi
4                 Done    Test
5
6                         Done

Codice corrente:

Sub CopyC()
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("C1:C10")

For Each cel In SrchRng
If InStr(1, cel.Value) > 0 Then
cel.Offset(2, 1).Value = "-"
End If
Next cel
End Sub

risposte:

1 per risposta № 1

Sei vicino:

Sub CopyC()
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("C1:C10")
For Each cel In SrchRng
If cel.Value <> "" Then
cel.Offset(2, 1).Value = cel.Value
End If
Next cel
End Sub

inserisci la descrizione dell'immagine qui

Ho aggiunto 1-6 nella colonna D per mostrare che sta ignorando gli spazi vuoti