2016-02-16 14 views
5

Faccio fatica a dividere i primi tre caratteri da una cella e inserirli in un'altra cella come stringa separata.VBA - Copia i primi tre caratteri da una stringa in un'altra cella

mio (esempio) Ingresso:

A 

A123456 
A133457 
B123456 
B133457 
... 

quello che voglio:

A   B 
A123456  A12 
A133457  A13 
B123456  B12 
B133457  B13 
...   ... 

Quello che ho cercato:

Dim ws As Worksheet 
Dim cell As Range 

Set ws = Worksheets("summary") 

For Each cell In ws.Range("A").Cells 
    cell.Value = Left(cell.Value, 3) 
    Next cell 

questo non può lavorare da quando avevo sovrascrivere il valore in tutte le celle A che non voglio. Qualcuno può fornire aiuto?

risposta

8

in Excel senza VBA, è possibile utilizzare la formula: = LEFT (A1,3)

Con VBA, è possibile effettuare le seguenti operazioni:

For Each cell In ws.Range("A:A").Cells 
    cell.Offset(0, 1).Value = Left(cell.Value, 3) 
Next cell 

Nota che ho modificato la gamma. Probabilmente vuoi limitare ulteriormente perché "A: A" richiederà un po 'di tempo.

La funzione di offset indica "utilizzare la cella 1 a destra della cella corrente".

+0

Grazie mille. Nell'esempio ho detto che avevo bisogno della cella giusta per i nuovi valori, ma ho bisogno della cella sinistra (quindi tutti i valori dalla cella A si trovano nella cella B e quelli tagliati andranno nella cella A). Spero tu capisca cosa intendo. Come posso fare questo? – KevinD

+2

@KevinD Basta inserire una colonna a sinistra della colonna A, quindi adattare VBA o formula formula risposte per riflettere quella –

+1

Formula: = SINISTRA (B1,3) VBA: Per ogni cella In ws.Range (" B: B "). Cellule cell.Offset (0, -1) .Valore = Sinistra (cella.Valore, 3) Cell. Successivo – GinjaNinja