2016-02-16 23 views
5

içine dizesinden ilk üç karakteri kopyalayın.VBA - Bir hücreden ilk üç karakteri bölme ve ayrı dize olarak başka hücreye bunları eklemek ile mücadele başka bir hücreye

Benim (örnek) girişi:

A 

A123456 
A133457 
B123456 
B133457 
... 

Benim istediğim:

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

Denedim Ne: Ben üzerine ediyorum beri

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 

Bu çalışamaz istemediğim tüm hücrelerdeki değer. Birisi yardım edebilir mi? aşağıdakileri yapabilirsiniz, VBA ile = SOL (A1,3)

: VBA olmadan

Excel'de

cevap

8

, sen formülü kullanabilirsiniz ben aralığını değiştirdik

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

Not. Muhtemelen sınırlamak istersiniz "A: A" bir süre alacaktır.

ofset işlevi "Mevcut hücrenin sağına hücreyi 1 kullanın" diyor.

+0

Çok teşekkür ederim. Örnekte, yeni değerler için doğru hücreye ihtiyacım olduğunu söyledim, ama sol hücreye ihtiyacım var (böylece A hücresindeki tüm değerler B hücresinde ve kesikli olanlar A hücresine gitmelidir). Umarım ne demek istediğimi anlarsın. Bunu nasıl yapabilirim? – KevinD

+2

@KevinD A sütununun sol tarafına bir sütun ekleyin, ardından VBA veya çalışma sayfası formülünün yanıtlarını ya uyarlayacak şekilde uyarlayın. –

+1

Formül: = SOL (B1,3) VBA: Her hücre için ws.Range (" B:. B ") Hücreler cell.Offset (0, -1) .Value = Sol (cell.Value, Sonraki hücre – GinjaNinja

İlgili konular